.vimrc вести себя как Textmate? - PullRequest
       23

.vimrc вести себя как Textmate?

1 голос
/ 06 марта 2012

Я переключаюсь на VIM из Textmate, и я хотел знать, что должно быть включено в мой .vimrc, чтобы получить аналогичное поведение для:

  • автоматического закрытия скобок, парантеза и т. Д..
  • автоматическое табулирование после скобки
  • когда я открываю скобку и выбираю ввод, открывающая скобка находится на 1-й строке, курсор на 2-й строке с отступом и закрывающая скобка на 3-йстрока
  • нажатие <tab> вкл для генерации общего использования 'для'

Спасибо.

Ответы [ 2 ]

11 голосов
/ 06 марта 2012

Первое, что нужно знать, это то, что вы не можете превратить Vim в TextMate . Во-вторых, вы даже не должны пытаться .

Вместо этого сосредоточьте свои усилия на постепенном изучении Vim и увеличивайте / уменьшайте коллекцию настроек и плагинов по мере необходимости. Использование Janus или какого-либо другого «дистрибутива» только окутает Vim за произвольным выбором других людей.

Тем не менее,

  • "автоматическое закрытие скобок, парантез и т. Д."

    можно сделать «тупым» способом, добавив эту строку в ~/.vimrc:

    inoremap ( ()<Left>
    
    • inoremap предназначен для отображения в режиме вставка (обратите внимание на i)

    • ( - это клавиша, которую вы хотите нажать, это ваш триггер

    • ()<Left> означает ввод пары скобок, затем возврат на один символ между скобками

    Если вам нужен «умный» способ, есть множество плагинов на выбор.

    Возможно, вы захотите попробовать surround , что само по себе было очень веской причиной для перехода с TextMate.

  • "когда я открываю скобку и выбираю ввод, открывающая скобка находится на 1-й строке, курсор на 2-й строке имеет отступ, а закрывающая скобка на 3-й строке"

    также можно сделать разными способами, например:

    inoremap <C-Return> <CR><CR><C-o>k<Tab>
    
    • inoremap, снова

    • <C-Return> означает Ctrl+Return, это ваш триггер

    • <CR><CR> означает 2 возврата каретки для толкания закрывающей скобки на 2 строки ниже

    • <C-o> для выхода из режима insert только для одной команды

    • k на одну строчку вверх

    • <Tab>, чтобы поместить курсор вставки в нужное место

    Сопоставления в Vim могут быть просто: горячие клавиши для последовательностей нажатий клавиш или более серьезные сценарии.

  • "нажатие <Tab> вкл для генерирует общее" для "использования"

    можно сделать с помощью специального плагина, например SnipMate . Есть другие .

7 голосов
/ 06 марта 2012

автоматическое закрытие скобок, парантез и т. Д.

Существует несколько плагинов для этой функции: autoclose , closepairs , simplepairs

автоматическое табулирование после скобки

Под этим я полагаю вы имеете в виду автоматический отступ. Это поведение Vim по умолчанию, когда вы работаете с поддерживаемым типом файла. Если вы только начинаете работу с файлом и не сохранили его, вы можете вручную установить тип файла с помощью :set ft=<whatever filetype you want>, и вы получите отступы и подсветку синтаксиса.

когда я открываю скобку и выбираю ввод, открывающая скобка находится на 1-й строке, курсор на 2-й строке с отступом и закрывающая скобка на 3-й строке

Это будет решено с помощью вышеупомянутых плагинов автоматического закрытия.

нажатие tab on для генерации общего «для» использования

Они называются "фрагментами" в TextMate. Snipmate - это широко используемый плагин Vim для фрагментов кода. Другие люди предпочитают xptemplate .

Если вы переходите с TextMate на Vim, я бы попробовал установить Янус и внимательно прочитать документацию.

Janus - отличный стартовый дистрибутив плагинов и сопоставлений для Vim, gVim и MacVim. Он имеет разумные значения по умолчанию и стремится обеспечить минимальную рабочую среду с использованием самых популярных плагинов и наиболее распространенных сопоставлений. Он был разработан и поддерживается Карлом Лершем и бывшим пользователем TextMate Иегуда Кац .

Мой личный опыт / совет заключается в том, что вы действительно можете свести себя с ума, пытаясь подражать каждой функции вашего любимого редактора в точности так, как она была. Каждая функция, которую вы пытаетесь воспроизвести, является, вероятно, просто причудами, к которым вы привыкли благодаря мышечной памяти. Вы будете намного продуктивнее, если просто начнете «принимать» Vim, изучать его и перерабатывать для этого свою мышечную память.

...