Com um arquivo de 1,5 GB, o vim funciona para mim. Uma pesquisa de texto por uma string não existente - isto é, pelo arquivo inteiro - levou ≈10-15 segundos. no meu laptop. Note, porém, que o vim carrega o arquivo completamente na memória. Provavelmente não é um problema para você com 16GB de RAM.
Mas eu tenho isso no meu ~/.vimrc
(infelizmente não me lembro da fonte original) :
" changes to open really big files
let g:LargeFile = 1024 * 1024 * 10
augroup LargeFile
autocmd BufReadPre * let f=getfsize(expand("<afile>")) | if f > g:LargeFile || f == -2 | call LargeFile() | endif
augroup END
function LargeFile()
" no syntax highlighting etc
set eventignore+=FileType
" save memory when other file is viewed
setlocal bufhidden=unload
" is read-only (write with :w new_filename)
setlocal buftype=nowrite
" no undo possible
setlocal undolevels=-1
" display message
autocmd VimEnter * echo "The file is larger than " . (g:LargeFile / 1024 / 1024) . " MB, so some options are changed (see .vimrc for details)."
endfunction
Você também pode estar interessado nos pergunta semelhante em outro site da SE , porque poderia haver mais truques. Por exemplo. Eu vejo lá alguém aconselha um plugin vim especificamente para arquivos grandes - nunca tentei um presente.