VIM — Undo persistence
Undo persistence — это возможность хранения истории отмен и накатов, после закрытия и повторном открытии редактора Vim.
В Vim встроена мощная дерево–видная система хранения отмен и накатов, которая позволяет восстановить всю цепочку(и цепочки всех веток) сделанных изменений. Недостаток был только один, при закрытии редактора она не сохранялась. С выходом версии 7.3 появилась такая возможность, на первый взгляд, не примечательная, но с другой очень полезная.
Для начала включим опцию set undofile, затем создаем папку где будем хранить файлы с историей, к примеру ~/.vim/undo, задаем значение set undodir=~/.vim/undo, перегружаем файл настроек :so ~/.vimrc. История отмен и накатов будет храниться в папке undo и файле примерно с таким названием:~/.vim/undo/%Users%sanek%.vimrc
Если нужно сохранить или считать файл в другом месте, можно использовать команды — :wundo, :rundo. Запретить создание undofile для определенного вида файлов или файла, так au BufWritePre /path/* setlocal noundofile.
Вот более сложное решение, если нужно как-то влиять на названия файлов и путей(взято из мана):
Почитать оригинальный ман — :h undo-persistence
P.S.
Для меня эта функция оказалась полезной, удобно к примеру синхронизировать проекты на 2 машинах, дома и на работе под рукой полная цепочка изменений.
В Vim встроена мощная дерево–видная система хранения отмен и накатов, которая позволяет восстановить всю цепочку(и цепочки всех веток) сделанных изменений. Недостаток был только один, при закрытии редактора она не сохранялась. С выходом версии 7.3 появилась такая возможность, на первый взгляд, не примечательная, но с другой очень полезная.
Для начала включим опцию set undofile, затем создаем папку где будем хранить файлы с историей, к примеру ~/.vim/undo, задаем значение set undodir=~/.vim/undo, перегружаем файл настроек :so ~/.vimrc. История отмен и накатов будет храниться в папке undo и файле примерно с таким названием:~/.vim/undo/%Users%sanek%.vimrc
Если нужно сохранить или считать файл в другом месте, можно использовать команды — :wundo, :rundo. Запретить создание undofile для определенного вида файлов или файла, так au BufWritePre /path/* setlocal noundofile.
Вот более сложное решение, если нужно как-то влиять на названия файлов и путей(взято из мана):
au BufReadPost * call ReadUndo() au BufWritePost * call WriteUndo() func ReadUndo() if filereadable(expand('%:h'). '/undo/' . expand('%:t')) rundo %:h/undo/%:t endif endfunc func WriteUndo() let dirname = expand('%:h') . '/undo' if !isdirectory(dirname) call mkdir(dirname) endif wundo %:h/undo/%:t endfunc
Почитать оригинальный ман — :h undo-persistence
P.S.
Для меня эта функция оказалась полезной, удобно к примеру синхронизировать проекты на 2 машинах, дома и на работе под рукой полная цепочка изменений.
- +2
- 16 декабря 2010, 00:55
- sanek
- Оставить комментарий
vim скроллинг для rxvt
Его долгое время не хватало для совершенства в окружении xmonad/vim/ranger/ncmpc/итд. Поиски не приводили к результату. И наконец я это сделал :), может ещё кому-то пригодится:
Последние две — как раз скроллинг. «2» — количество строчек для прокрутки. Из остального полезно: zenburn для вкладок, затемнение неактивного терминала, отключен авто-скроллинг (использую, например, для выбора приложений в yaourt)

urxvt.font: xft:Terminus:pixelsize=14:autohint=true:a urxvt.shading: 30 urxvt.transparent: true urxvt.foreground: #aaaaaa urxvt.depth: 32 urxvt*background: rgba:0000/0000/0000/cccc urxvt.fading: 70 urxvt.fadeColor: [0]black urxvt.saveLines:32767 urxvt.scrollBar: false urxvt.perl-ext-common: default,tabbed urxvt.tabbed.tabbar-fg: 7 urxvt.tabbed.tabbar-bg: 8 urxvt.tabbed.tab-fg: 2 urxvt.tabbed.tab-bg: 8 urxvt.scrollTtyOutput: false urxvt.keysym.Control-k: command:\033]720;2\007 urxvt.keysym.Control-j: command:\033]721;2\007
Последние две — как раз скроллинг. «2» — количество строчек для прокрутки. Из остального полезно: zenburn для вкладок, затемнение неактивного терминала, отключен авто-скроллинг (использую, например, для выбора приложений в yaourt)
Скриншот:

Источник
welinux.ru/post/4725/
- +1
- 15 декабря 2010, 01:19
- android
- Оставить комментарий
Плагин code_complete для Vim'a - автодополнение и сниппеты
Практически во всех современных средах разработки есть пара удобных возможностей — есть возможность видеть список параметров функции, введя имя этой функции и открывающую скобку, и автодополнение стандартных блоков кода, наподобие if () {} else {} и других.
Естественно, подобная функциональность не могла обойти стороной и текстовый редактор Vim (который, стоит отметить, являет собой нечто большее, чем просто текстовый редактор). Сниппеты и автодополнение параметров функций можно найти во множестве плагинов, лежащих на vim.org. В своей статье, я хочу рассмотреть один плагин, в котором уже реализованы и сниппеты и автодополнение. Плагин называется code_complete (new update).
Установка плагина предельно проста и выполняется через VimBall — открывается файл plugin_name.vba и выполняется команда :so %. Все. Автодополнение в плагине работает по хоткею, в отличие от плагина code_complete, в котором почему-то использовалась клавиша. Естественно, хоткей можно поменять — этот процесс описан в прилагаемой документации.
Кроме того, в рассматриваемом плагине достаточно удобно менять внешний вид используемых сниппетов. Меня, как любителя фигурных скобочек на той же строке, что и ключевое слово или имя функции, не устраивала позиция создателя code_complete, который считал, что фигурные скобочки должны располагаться на следующей строке. Естественно, я поменял поведение плагина на требуемое мне.
Шаблоны сниппетов располагаются в файле ~/.vim/plugin/default_snippets.template. Шаблоны для C и C++ начинаются с 64 строки и кончаются на 84. Если вы такой же приверженец «фигурных скобочек на текущей строке» как и я, то просто замените содержимое строк с 64 по 84 вот этим:
Читать дальше
Естественно, подобная функциональность не могла обойти стороной и текстовый редактор Vim (который, стоит отметить, являет собой нечто большее, чем просто текстовый редактор). Сниппеты и автодополнение параметров функций можно найти во множестве плагинов, лежащих на vim.org. В своей статье, я хочу рассмотреть один плагин, в котором уже реализованы и сниппеты и автодополнение. Плагин называется code_complete (new update).
Установка плагина предельно проста и выполняется через VimBall — открывается файл plugin_name.vba и выполняется команда :so %. Все. Автодополнение в плагине работает по хоткею, в отличие от плагина code_complete, в котором почему-то использовалась клавиша. Естественно, хоткей можно поменять — этот процесс описан в прилагаемой документации.
Кроме того, в рассматриваемом плагине достаточно удобно менять внешний вид используемых сниппетов. Меня, как любителя фигурных скобочек на той же строке, что и ключевое слово или имя функции, не устраивала позиция создателя code_complete, который считал, что фигурные скобочки должны располагаться на следующей строке. Естественно, я поменял поведение плагина на требуемое мне.
Шаблоны сниппетов располагаются в файле ~/.vim/plugin/default_snippets.template. Шаблоны для C и C++ начинаются с 64 строки и кончаются на 84. Если вы такой же приверженец «фигурных скобочек на текущей строке» как и я, то просто замените содержимое строк с 64 по 84 вот этим:
Читать дальше
- 0
- 23 ноября 2010, 23:12
- Diesel
- Оставить комментарий