Comments 30
Что с ногами у мужика с заднего плана КПВД?
VIM ломает ноги парням из Уганды
Пользуюсь vim уже года три, и до сих пор иногда открываю для себя что-то новое. Утащил сохранение истории изменений в свой vimrc.
Как вы знаете, если файл модифицирован, команды :bn, :bp, b# не сработают и выведут предупреждение о том, что надо его
сохранить.
Эту проблему проще решить установкой :set hidden (тогда будет происходить переключение без записи изменений) или :set autowrite (то же самое, только с автоматической записью изменений).
Я использую hidden.
Но тогда получится, что в буффере после переключения изменения несохранятся. А autowrite будет ругаться на файлы Read Only. Или нет?
Да, изменения не сохранятся, но и не потеряются, т.е. я могу вернуться обратно в данный буфер и сохранить изменения. И если я попытаюсь выйти (:q), находясь в другом буфере, я всё равно получу предупреждение о том, что изменения в первом буфере не сохранены.
При autowrite vim действительно будет ругаться на r/o файлы и не будет давать переключаться в другой буфер.
При autowrite vim действительно будет ругаться на r/o файлы и не будет давать переключаться в другой буфер.
Из полезностей:
1) Строка с информацией по текущему файлы
set laststatus=2
set statusline=%f:%c:%l\ (%p%%)\ %y%([%R%M]%)\ buf:\ #%n\ ASCII:\ [0x%B]\ [%{&fileencoding}]
будет выводиться строка с именем файла, текущей строкой/колонкой курсора, типом файла (%y), hex-кодом символа в позиции курсора (%B) и кодировкой файла.
2) scrolloff — количество строк, которое всегда показывать в окне перед и после курсора, т.е. например, при скроллинге вниз, я всегда буду видеть под курсором N строк, т.е. листание начнётся до того, как я достигну курсором последней строки
у меня стоит :set scrolloff=5
1) Строка с информацией по текущему файлы
set laststatus=2
set statusline=%f:%c:%l\ (%p%%)\ %y%([%R%M]%)\ buf:\ #%n\ ASCII:\ [0x%B]\ [%{&fileencoding}]
будет выводиться строка с именем файла, текущей строкой/колонкой курсора, типом файла (%y), hex-кодом символа в позиции курсора (%B) и кодировкой файла.
2) scrolloff — количество строк, которое всегда показывать в окне перед и после курсора, т.е. например, при скроллинге вниз, я всегда буду видеть под курсором N строк, т.е. листание начнётся до того, как я достигну курсором последней строки
у меня стоит :set scrolloff=5
Еще бы кто научил vim автоматически восстанавливать все буферы после падения. А то руками открывать свап-файлы совсем неудобно.
set history=1000
set undolevels=1000
set noswapfile
Но если вам зачем-то нужны swapfiles — то
:help SwapExists
.swapfiles — они из коробки включены. Если их выключить, то как vim после креша откроет тот же набор буферов с теми же файлами в них? В хелпе так и написано, рекавери вам не будет, если выключить.
Вот спасибо!
Про upd1:
У вас в function! UnCommentLine() опечатка. Должно, конечно, быть let endsymbol = b:comment[1]
Кроме того
execute ":silent! normal :s/^\s*". stsymbol. "//\"
execute ":silent! normal :s/\s*". endsymbol. "\s*$//\"
лучше переписать
execute ":silent! normal :s+^\s*". stsymbol. "++\"
execute ":silent! normal :s+s*". endsymbol. "\s*$++\"
Тогда оно не поломается, если добавить C-образные комментарии (например, javascript)
Про upd1:
У вас в function! UnCommentLine() опечатка. Должно, конечно, быть let endsymbol = b:comment[1]
Кроме того
execute ":silent! normal :s/^\s*". stsymbol. "//\"
execute ":silent! normal :s/\s*". endsymbol. "\s*$//\"
лучше переписать
execute ":silent! normal :s+^\s*". stsymbol. "++\"
execute ":silent! normal :s+s*". endsymbol. "\s*$++\"
Тогда оно не поломается, если добавить C-образные комментарии (например, javascript)
if version >= 700
Может все же
if version >= 703
?
Persistent undo добавили в версии 7.3.
The most notable additions since 7.2:link
— Persistent undo and undo for reload
vim 7.2 ругается ошибкой E518 (Неизвестная опция) на undodir, undofile и undoreload.
За статью спасибо. Узнал для себя нового.
Да, извиняюсь, действительно с 7.30
if version >= 730
if version >= 730
А точно ли должно быть
Когда я сделал для проверки 720 у меня vim не ругался, а когда 702 — ругался. Поэтому я думаю, что надо все же 703 ставить. Или может я чего не так понимаю?
if version >= 730, а не
if version >= 703?
Когда я сделал для проверки 720 у меня vim не ругался, а когда 702 — ругался. Поэтому я думаю, что надо все же 703 ставить. Или может я чего не так понимаю?
Открыл один удаленный хост с Debian Squeeze stable проверить.
VIM — Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 12:47:57)
И у меня в vimrc следующий код:
VIM — Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 12:47:57)
И у меня в vimrc следующий код:
if version >= 730
set history=64
set undolevels=128
set undodir=~/.vim/undodir/
set undofile
set undolevels=1000
set undoreload=10000
endif
Ошибок и предупреждений нет.
Рекомендую доклад Андрея Змиевского про vim для программеров: zmievski.org/2010/06/vim-for-programmers-on-slideshare
Sign up to leave a comment.
Продвинутая настройка VIM