LINUX.ORG.RU

Редактор для больших файлов

 , , , ,


0

1

Мой Komodo впадает в спячку если приходится работать с большими файлами. XML на 20 тыс.стр. уже проблема для него. А о 200тс уж и говорить нечего. Что посоветуете для просмотра/редактирования таких файлов? Возможностей заоблочных не надо, но желательно возможность работать по FTP/SFTP. Независающая подсветка синтаксиса и поиск и замена с регекспами обязательны, но они наверно есть везде.

★★★★★

Ответ на: комментарий от invy

А что-нибудь более гуманоидное? Просто вообще пересесть на vim я не готов - меня устраивает моё холоднокровное, а только для XML в очередной раз попытаться освоить как-то не то...

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Lavos

Надо чтобы этот «Любой» в описанных условиях колом не вставал. Ну и CurlFtpFS я пробовал - очень не удобно для моих задач.

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Тогда бери Kate. Потому что даже на 15 млн строк он не тормозил (после того, как полностью открыл файл, естественно).

fragmentor
()
Ответ на: комментарий от LongLiveUbuntu

Кто-то запилил файл для обмена между двумя черными ящиками. Черный ящик который принимает файл падает. Черный ящик который отправляет файл прозрачен для того кто запилил. Моя задача объяснить почему тот который принимает упал. :'(

Suntechnic ★★★★★
() автор топика

Независающая подсветка синтаксиса

Ахаха, вот как раз gtksourceview2 большие файлы тяжело подсвечивал, gtksourceview3 ещё не пробовал.

Если надо просто отредактировать leafpad/gedit без подсветки, хоть 100к строк.

Umberto ★☆
()
Ответ на: комментарий от Suntechnic

Там вывод просто тормозной. А с большим файлом вообще втыкает на пол часа и ни на что не реагирует

panfutij
()

Что посоветуете для просмотра/редактирования таких файлов?

vim

//closed

drBatty ★★
()

у меня есть файлик на 80 т.с.
geany залипает минуты на 3, при открытии. Просмотр/редактирование сносное.
vim залипает на 2 сек., при открытии. Просмотр/редактирование ваще атлична.

Еще не осилил vim? Самое время..

expelled ★★
()
Ответ на: комментарий от Suntechnic

Kate не любит очень длинные строки.

Deleted
()
Ответ на: комментарий от drBatty

Причем осваивается на раз, разве что оригинальный конфиг мне лично не очень нравится. ТС, если чо могу скинуть, все равно от судьбы не убежишь.

arturpub ★★
()
Ответ на: комментарий от arturpub

А описание есть что там переназначено?

Кстати попробовал - действительно самый шустрый. Но вот вроде же у него gui еще был или я путаю?

Suntechnic ★★★★★
() автор топика

Vim-minimal умело обращается с файлами более 248 Гбайт... Лёгкий и быстрый текстовый редактор.

Deathstalker ★★★★★
()

Сгенерил xml, проверил на том, что есть у меня: emacs тормозит (даже без режимов), vim и kwrite нет. Думаю последние два умеют работать с FTP.

gv
()
Ответ на: комментарий от gv

Ах, да: nano не тормозит, но жрет 90% cpu при прокрутке.

gv
()

Я как раз вчера по дурости открыл Kate словарь английского языка (тот, где только слова), нужно было удалить подряд идущие первых ~10k строк. Выделил, нажал бекспейс, оно как зависло. Сделал xkill, открыл в виме, за секунду нагуглил нужную регулярку, выполнил, сохранил. Отсюда мораль: используйте вим. (Хотя следовало бы ту же регулярку посредством ed запустить, но тебе еще и глазами смотреть надо.)

cdshines ★★★★★
()
Последнее исправление: cdshines (всего исправлений: 1)
Ответ на: комментарий от andreyu

Ну вообще у меня сейчас препарируется файл 60тс. Вроде нормально. Чуть глючит обновление при быстрой прокрутке, а так все ништяк. И подсветка пашет. Раздражает слишком минималистичный вид (по дефолту даже банальной нумерации строк нет...) и то что я никак не могу запомнить клавиши...

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от andreyu

Вим на таком количестве строк сдохнет.

случайно не найдётся образца такого файла, с любым к-вом строк, исходного кода либо же просто редактируемой даты - для проверки, когда же может загнутся вим? Я открывал 40~50K строк файлы - всё ок.

science ★★☆
()
Ответ на: комментарий от Suntechnic

Ну вообще у меня сейчас препарируется файл 60тс.

Сделал xml-файл с короткими строками, около 1'800'000 строк. Команда G ставит вим на колени. Секунд 30 прыгал в конец файла.

Прыгнуть на пару экранов вверх (C-u) тоже ставит вим на колени.

Попытка сделать ggVG вводит вим в ступор. Я так и не дождался окончания работы, пришлось прибить вим.

Подсветка текущей строки отключена, нумерация строк включена.

Вроде нормально. Чуть глючит обновление при быстрой прокрутке, а так все ништяк.

Что значит глючит обновление при прокрутке?

И подсветка пашет. Раздражает слишком минималистичный вид (по дефолту даже банальной нумерации строк нет...) и то что я никак не могу запомнить клавиши...

Эта команда включит нумерацию строк:

:set number

andreyu ★★★★★
()
Ответ на: комментарий от science

случайно не найдётся образца такого файла, с любым к-вом строк, исходного кода либо же просто редактируемой даты - для проверки, когда же может загнутся вим? Я открывал 40~50K строк файлы - всё ок.

Хреново он работает даже на 200'000 строк.

А файл такой делается за пару десятков секунд - откройте вим, напишите что-либо в строке, скопируйте эту строку (Y) и вставьте ее раз 10 (10p). Потом скопируйте все строки и снова вставьте (ggVGyp). Продолжайте делать предыдущий пункт столько раз, сколько вам угодно. Но уже через несколько копирований-вставок вим сдохнет.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Попробовал открыть файл на 1'800'000 строк - количество строк вим подсчитал практически сразу, а вот отрисовал содержимое и был готов к вводу он через минуты 3.

Полагаю, что какие то плагины мешают ему работать быстрее.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Перевел вим в режим paste, команда ggVGy отработала быстро. Но вставка все еще тупит. Ну оно и понятно - должно получиться более 3'600'000 строк (около 300 мегабайт).

Проверил, голый вим с set paste и set nocursorline работает значительно шустрее.
Но перемещается из начала в конец после вставки все равно очень долго.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

На 60кс 2 секунды до перехода в конец файла. ggVG - 0,5с. на глазок.

Что значит глючит обновление при прокрутке?

А вот сейчас не глючит на том же файле. А было... ну когда мотаешь, нижняя половина экрана чистая, а в верхней текс как бы с мерцанием прокручивается. Это в gui.

:set number

Спасибо.

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от andreyu

Хреново он работает даже на 200'000 строк.

Открыл файл на 450 000 строк. Все летает. Vim без плагинов, без подсветки синтаксиса.

anonymous
()
Ответ на: комментарий от invy

vim

Подсветка синтаксиса там таки тормозная. Нет, даже ТОРМОЗНАЯ.

anonymous
()
Ответ на: комментарий от Suntechnic

гуй для вима не нужен, его (вима)ценность в том, что он может работать на любой кофемолке, и на любом сервере в любом продакшене. Гуй для вима — как два дополнительных колеса к велосипеду — нужны лишь мальчикам младше 7и лет.

drBatty ★★
()
Ответ на: комментарий от anonymous
# wc -l /var/log/squid/access.log 
5693425 /var/log/squid/access.log

ls -lh /var/log/squid/access.log
-rw-r----- 1 squid squid 822M Jul 16 08:35 /var/log/squid/access.log

vim /var/log/squid/access.log

Открывался 20 сек (подсчитывал строки, видимо), потом летал, в конец файла (G) мгновенно и т.д.

anonymous
()

400 Мб vim сожрал, хоть и с некоторым трудом.

S-Mage ★★
()

sublime пробовал? (сам не тестил на таких объемах)

EugeneBas ★★
()

Я вимом редактирую файлы на 2-3 миллиона строк.
Открывает секунд 7мь (ну там правда 24ре ядра, 12 оперативки).
Навигация и правка на ура, в пределах всего диапазона, будь-то это пару строк.

Spirit_of_Stallman ★★★
()
Ответ на: комментарий от Suntechnic

Да, gvim для винды и линуксов (оригинальный дистр), mvim на маке (вроде отдельный). Особо ничего не переназначено, там у меня пара скриптов и set'ы всякие. Описание опции по <S-K>. Дефолтный скрипт еще инклудит какие-то стандартные скрипты из стандартной папки, можно посмотреть что там и поиграться. Если знаешь, что тебе конкретно нужно, такие инклуды не нужны.

Это все надо положить в ~/.vimrc на линуксе и маке, или в c:\PF\Vim\_vimrc на винде.


map <M-F6> :set lines=999<CR>

"
" options
"

set nocompatible
behave xterm

"set tags+=tagfile,tagfile,...
"set path+=path,path,...

set backspace=indent,eol,start
set incsearch
set smartindent
set showtabline=2
set shiftwidth=4
set softtabstop=4
set expandtab
set cinoptions=l1,t0,(4,m1
set numberwidth=5
set listchars=tab:›\ ,trail:·
set autoread
set laststatus=2
set statusline=%<%F\ %h%m%r%=%-14.(%l,%c%V%)\ %P
set foldmethod=marker
set wildmenu
set wildignore=*.o,CVS/,*/CVS/
set wildmode=longest,list
set backup
set backupdir=./.backup,~/.backup//,.
set directory=./.backup,~/.backup//,.
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
"set iskeyword=@,48-57,_,192-255 " use default?
set guioptions-=m
set guioptions-=T

if !exists(":DiffOrig")
    command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
                \ | wincmd p | diffthis
endif

if has("autocmd")
    filetype plugin indent on
    augroup vimrcEx
        au!
        autocmd FileType text setlocal textwidth=78
        autocmd BufReadPost *
                    \ if line("'\"") > 1 && line("'\"") <= line("$") |
                    \   exe "normal! g`\"" |
                    \ endif
    augroup END
else
    set autoindent
endif

set autoindent

"
" maps
"

" http://vim.wikia.com/wiki/Recover_from_accidental_Ctrl-U
inoremap <C-U> <C-G>u<C-U>
inoremap <C-W> <C-G>u<C-W>

map Q gq

" :tab shortcuts -- забыл про них, ненужно
map t<C-]> :tab tag <C-R>=expand("<cword>")<CR><CR>
map tgf <C-W>gf
map g/ :tabe<CR>:grep -r '' *<Left><Left><Left>

" подставляет слово под курсором в ком.строку
cmap <C-W> <C-R>=expand("<cword>")<CR>

" не помню что это и для чего
map gp :psearch <C-R>=expand("<cword>")<CR><CR>:<ESC>
map gc :pclose:<ESC>

" clear search highlighting -- ненужно
map <F4> :nohls<CR>:<BS>
imap <F4> <ESC>:nohls<CR>:<BS>i

" start win32 shell/window
map <F5> :!start cmd /k cd "%:p:h"<CR>
map <C-F5> :!start cmd /c start /D"%:p:h" .<CR>

" M-/ M-. [un]comment block
" альт-/ комментирует
" альт-. раскомментирует
autocmd FileType c,cpp map <buffer> <M-/> :s!^\(  \(  \)\(.*\)\\|\(.*\)\)!//\2\3\4!<CR>:nohls<CR>
autocmd FileType c,cpp map <buffer> <M-.> :s!^\(//\(  \)\\|//\)\(.*\)!\2\2\3!<CR>:nohls<CR>
autocmd FileType lua map <buffer> <M-/> :s!^\(  \(  \)\(.*\)\\|\(.*\)\)!--\2\3\4!<CR>:nohls<CR>
autocmd FileType lua map <buffer> <M-.> :s!^\(--\(  \)\\|--\)\(.*\)!\2\2\3!<CR>:nohls<CR>
autocmd FileType perl,sh map <buffer> <M-/> :s!^\(  \(  \)\(.*\)\\|\(.*\)\)!# \2\3\4!<CR>:nohls<CR>
autocmd FileType perl,sh map <buffer> <M-.> :s!^\(# \(  \)\\|# \)\(.*\)!\2\2\3!<CR>:nohls<CR>
autocmd FileType vim map <buffer> <M-/> :s!^\(  \(  \)\(.*\)\\|\(.*\)\)!" \2\3\4!<CR>:nohls<CR>
autocmd FileType vim map <buffer> <M-.> :s!^\(" \(  \)\\|" \)\(.*\)!\2\2\3!<CR>:nohls<CR>

"
" functions
"

" скачай где-нибудь, полезная штука
runtime table_format.vim

" F2: toggle long lines highlighting (on by default)
map <F2> :echo "HighlightLongLines is" ToggleHighlightLongLines()<CR>
let g:HighlightLongLines = 0
function ToggleHighlightLongLines()
    if (g:HighlightLongLines == 1)
        highlight clear rightMargin
        let g:HighlightLongLines = 0
    else
        highlight rightMargin ctermbg=Gray guibg=Gray
        match rightMargin /\%>79v./
        let g:HighlightLongLines = 1
    endif
    return g:HighlightLongLines
endfunction

" F3: use automatic paragraph formatting (off by default)
map <F3> :echo "Autoformat is" ToggleAutoformat()<CR>
function ToggleAutoformat()
    if &formatoptions =~# 'a'
        set formatoptions-=a
        return "off"
    else
        set formatoptions+=a
        return "on"
    end
endfunction

"
" GUI
"

if has("gui_running")
    set columns=105 " 100+numberwidth
    set cmdheight=2
    set mousehide
    set hlsearch
    set number
    set list

    if has("gui_gtk2")
        set guifont=DejaVu\ Sans\ Mono\ 10
    elseif has("x11")
        " TODO
    elseif has("gui_win32")
        " выбор шрифта через диалог: set guifont=*
        " как выбрал можно посмотреть: set guifont
        " и написать сюда выведенную строчку
        set guifont=Meslo_LG_S_DZ:h10:cRUSSIAN
    endif

    if !exists("syntax_on")
        syntax on
    endif

    " нестандартная, скачать, положить в папку colors google "vim rainbow_neon.vim"
    colorscheme rainbow_neon
endif

" vim: foldmethod=marker :
arturpub ★★
()
Ответ на: комментарий от andreyu

Может и плагины какие, хз, я периодически пишу тесты чтобы кое-какие скрипты нагрузить, у меня в файликах дестяки миллионов строк и сотни мегабайт — все довольно шустро, разве что ундо после нескольких ggyGP загибается. Я где-то читал, что в виме строится особое дерево с динамической подгрузкой и заглушками какими-то, в общем я особо не вникал, но говорят что больше такое никто так и не сделал.

arturpub ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.