Поиск…


Файл vimrc

Файл .vimrc (произносится как Vim-wreck) является файлом конфигурации Vim. Он содержит команды, которые будут выполняться Vim при каждом запуске.

По умолчанию файл пуст или не существует; вы можете использовать его для настройки среды Vim.

Чтобы узнать, где Vim ожидает, что файл vimrc будет сохранен, откройте Vim и запустите:

:echo $MYVIMRC

Unix: в системе Unix, такой как Mac или Linux, ваш vimrc будет вызываться .vimrc и обычно находится в вашем домашнем каталоге ( $HOME/.vimrc ).

Windows: в Windows он будет называться _vimrc и расположен в вашем домашнем каталоге ( %HOMEPATH%/_vimrc ).

При запуске Vim будет искать в нескольких местах файл vimrc. Первый, который существует, используется, остальные игнорируются. Полную информацию см :h $MYVIMRC документации по документации :h $MYVIMRC .

Какие варианты я могу использовать?

Если вы не знаете, какие параметры вы должны использовать, вас может заинтересовать команда :options .

Это откроет разделение со всеми перечисленными опциями Vim и отображением их текущего значения. Есть 26 разделов для отображения всех параметров, которые вы можете попробовать.

например

4 displaying text

scroll    number of lines to scroll for CTRL-U and CTRL-D
    (local to window)
     set scr=20
scrolloff    number of screen lines to show around the cursor
     set so=5
wrap    long lines wrap
     set nowrap    wrap

...

В строке значений (например, set nowrap ) вы можете нажать CR для переключения значения (если это двоичное значение). В строке опций (например, wrap long line wrap ) вы можете нажать CR, чтобы получить доступ к документации для этой опции.

Файлы и каталоги

Что бы вы ни делали, чтобы настроить Vim, он НИКОГДА не должен происходить за пределами $HOME :

  • на Linux, BSD и Cygwin, $HOME обычно /home/username/ ,
  • на Mac OS X, $HOME есть /Users/username/ ,
  • на Windows, $HOME обычно является C:\Users\username\ .

Каноническое расположение вашего vimrc и вашего каталога vim находится в корне каталога $HOME :

  • на Unix-подобных системах

    $HOME/.vimrc       <-- the file
    $HOME/.vim/        <-- the directory
    
  • в Windows

    $HOME\_vimrc       <-- the file
    $HOME\vimfiles\    <-- the directory
    

Приведенная выше схема гарантированно будет работать, теперь и в будущем.

Vim 7.4 позволил сохранить ваш прекрасный vimrc внутри вашего каталога vim . Это действительно хорошая идея, хотя бы потому, что она облегчает перемещение вашей конфигурации.

Если вы используете только 7.4, достаточно будет следующего:

  • на Unix-подобных системах

    $HOME/.vim/vimrc
    
  • в Windows

    $HOME\vimfiles\vimrc
    

Если вы хотите получить преимущества автономного vim/ но использовать как 7.4, так и более старую версию, или только более старую версию, самым простым и перспективным решением является установка этой строки и только этой строки:

runtime vimrc

в этом файле:

  • на Unix-подобных системах

    $HOME/.vimrc
    
  • в Windows

    $HOME\_vimrc
    

и сделайте свою конфигурацию в $HOME/.vim/vimrc или $HOME\vimfiles\vimrc .

Опции

Существует три варианта:

  • boolean options,
  • строки,
  • число вариантов.

Чтобы проверить значение параметра,

  • use :set option? для проверки значения параметра,
  • use :verbose set option? чтобы увидеть, где он был последним.

Настройка логических параметров

set booloption      " Set booloption.
set nobooloption    " Unset booloption.

set booloption!     " Toggle booloption.

set booloption&     " Reset booloption to its default value.

Настройка параметров строки

set stroption=baz   " baz

set stroption+=buzz " baz,buzz
set stroption^=fizz " fizz,baz,buzz
set stroption-=baz  " fizz,buzz

set stroption=      " Unset stroption.

set stroption&      " Reset stroption to its default value.

Настройка параметров

set numoption=1     " 1

set numoption+=2    " 1 + 2 == 3
set numoption-=1    " 3 - 1 == 2
set numoption^=8    " 2 * 8 == 16

Использование выражения как значения

  • используя конкатенацию:

    execute "set stroption=" . my_variable
    
  • используя :let :

    let &stroption = my_variable
    

См . :help :set and :help :let .

Отображения

  • Не помещайте комментарии после сопоставлений, это сломает вещи.
  • Используйте :map <F6> чтобы увидеть, что отображается в <F6> и в каком режиме.
  • Используйте :verbose map <F6> чтобы увидеть, где он был последним.
  • :map и :map! слишком общие. Использование :n[nore]map для сопоставлений нормального режима :i[nore]map для режима вставки; :x[nore]map для визуального режима и т. Д.

Рекурсивные отображения

Используйте рекурсивные сопоставления только в том случае, если вы собираетесь использовать другие сопоставления в ваших сопоставлениях:

nnoremap b     B
nmap     <key> db

В этом примере b работает как B в нормальном режиме. Поскольку мы используем b в рекурсивном отображении, нажатие <key> будет работать как dB , а не как db .

Нерекурсивные отображения

Используйте нерекурсивные сопоставления только в том случае, если вы намерены использовать команды по умолчанию в своих сопоставлениях, что почти всегда то, что вы хотите:

nnoremap <key> db

В этом примере мы используем b в нерекурсивном сопоставлении, поэтому нажатие клавиши всегда будет работать как db , будем ли мы переназначать b или нет.

Выполнение команды из сопоставления

nnoremap <key> :MyCommand<CR>

Выполнение нескольких команд из сопоставления

nnoremap <key> :MyCommand <bar> MyOtherCommand <bar> SomeCommand<CR>

Вызов функции из отображения

nnoremap <key> :call SomeFunction()<CR>

Отображение сопоставления <Plug>

map <key> <Plug>name_of_mapping

Смотрите :help map-commands :help key-notation и :help <plug> .

см. « Сопоставление ключей» в Vim для дальнейшего чтения

переменные

Как и большинство языков сценариев, vimscript имеет переменные.

Можно определить переменную с помощью команды :let :

let variable = value

и удалите его с помощью :unlet :

unlet variable

В Vim переменные могут быть ограничены добавлением одной буквы и двоеточия к их имени. Авторы плагинов используют эту функцию для имитации параметров:

let g:plugin_variable = 1

См . :help internal-variables .

команды

  • Не забывайте, что Bim позволит Vim перезаписать эту команду при следующем перезагрузке vimrc.
  • Пользовательские команды должны начинаться с символа верхнего регистра.

Примеры

command! MyCommand call SomeFunction()
command! MyOtherCommand command | Command | command
  • См . :help user-commands .

функции

  • Не забывайте взрыва, чтобы позволить Vim перезаписать эту функцию при следующем перезагрузке скрипта, где определена функция.
  • Пользовательские функции должны начинаться либо с символа верхнего регистра (глобальные функции), либо с помощью s: (локальных функций сценария), либо они должны иметь префикс имени, связанного с плагином автозагрузки, где они определены (например, в {&rtp}/autoload/foo/bar.vim мы могли бы определить foo#bar#functionname() ).
  • Чтобы иметь возможность использовать параметры в функции, используйте a:parameter_name . Функции Variadic могут быть определены с помощью многоточия ... , для доступа к параметрам используйте a:000 (список всех параметров) или a:0 (количество параметров, равное len(a:000) ), a:1 первый неназванный параметры и т. д.
  • Функции можно вызвать так :call MyFunction(param1, param2)
  • Каждая строка в функции неявно начинается с a : таким образом, все команды представляют собой команды двоеточия
  • Чтобы предотвратить продолжение выполнения функции в случае ошибки, лучше всего аннотировать подпись функции с abort

пример

function! MyFunction(foo, bar, ... ) abort
    return a:foo . a:bar . (a:0 > 0 ? a:1 : '')
endfunction

Функции скрипта

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

function! s:my_private_function() " note we don't need to capitalize the first letter this time
    echo "Hi!"
endfunction

Использование s: функций из отображений

Если ваша локальная функция скрипта будет использоваться при сопоставлении, вам необходимо ссылаться на нее с помощью специального префикса <SID> :

nnoremap <your-mapping-key> :call <SID>my_private_function()<CR>

Смотрите :help user-functions .

Обратите внимание, однако, что с Vim 7 считается лучшей практикой определять сокращения сокращений, команды и меню в (ft) плагинах и определять функции в плагинах автозагрузки - за исключением функций, которые плагины должны использовать при загрузке. Это означает, что в настоящее время необходимость вызывать скрипты локальных функций из сопоставлений не так уместна, как раньше.

Группы автокоманд

  • Группы Autocommand подходят для организации, но они также могут быть полезны для отладки. Думайте о них как о небольших пространствах имен, которые вы можете включить / отключить по своему усмотрению.

пример

augroup MyGroup
    " Clear the autocmds of the current group to prevent them from piling
    " up each time you reload your vimrc.
    autocmd!

    " These autocmds are fired after the filetype of a buffer is defined to
    " 'foo'. Don't forget to use 'setlocal' (for options) and '<buffer>'
    " (for mappings) to prevent your settings to leak in other buffers with
    " a different filetype.
    autocmd FileType foo setlocal bar=baz
    autocmd FileType foo nnoremap <buffer> <key> :command<CR>

    " This autocmd calls 'MyFunction()' everytime Vim tries to create/edit
    " a buffer tied to a file in /'path/to/project/**/'.
    autocmd BufNew,BufEnter /path/to/project/**/* call MyFunction()
augroup END

См . :help autocommand .

Conditionals

if v:version >= 704
    " Do something if Vim is the right version.
endif

if has('patch666')
    " Do something if Vim has the right patch-level.
endif

if has('feature')
    " Do something if Vim is built with 'feature'.
endif

См. Раздел :help has-patch и :help feature-list .

Параметры настройки

Обычно вы должны использовать :set чтобы настроить параметры по своему вкусу в вашем .vimrc . Существует много вариантов, которые можно изменить.

Например, чтобы использовать пробелы для отступов:

:set expandtab
:set shiftwidth=4
:set softtabstop=4

Подсветка синтаксиса

Выключение подсветки синтаксиса, когда у терминала есть цвета

if &t_Co > 2 || has("gui_running")
    syntax on
end

Показать конечные пробелы и вкладки. Отображение вкладок может быть особенно полезно при поиске ошибок в Make-файлах.

set list listchars=tab:\|_,trail:.
highlight SpecialKey ctermfg=DarkGray

Цветовые схемы

Vim поставляется с несколькими предустановленными цветовыми схемами. В Linux цветовые схемы, которые поставляются с Vim, хранятся в /usr/share/vim/vim74/colors/ (где 74 - ваш номер версии, без периодов); MacVim хранит их в /Applications/MacVim.app/Contents/Resources/vim/runtime/colors .

Изменение цветовых схем

Команда colorscheme переключает текущую цветовую схему.

Например, чтобы установить цветовую схему «robokai»:

:colorscheme robokai

Цветовая схема по default креативно названа по default , поэтому, чтобы вернуться к ней, используйте

:colorscheme default

Чтобы просмотреть все установленные в настоящее время цветовые схемы, введите :colorscheme затем пробел, а затем вкладку или ctrl d .

Установка цветовых схем

Пользовательские цветовые схемы могут быть помещены в ~/.vim/colors/ . Как только цветовая схема будет добавлена ​​в этот каталог, она появится как опция команды colorscheme .

Чтобы найти новые цветовые схемы, есть такие сайты, как vimcolors, которые содержат множество цветовых схем. Существуют также инструменты, такие как vim.ink и Vivify, чтобы помочь вам в создании собственных цветовых схем или вы можете создать их вручную.

Переключить строку перечислить

Чтобы включить - введите:

:set number или :set nu .

Чтобы отключить - введите:

:set nonumber или :set nonu .

Чтобы включить перечисление относительно местоположения курсора - введите:

:set relativenumber .

Чтобы отключить перечисление относительно местоположения курсора - введите:

:set norelativenumber .

Примечание. Чтобы изменить, показывает ли текущая строка фактический номер строки или 0 , используйте :set number и :set nonumber commands, в то время как атрибут relativenumber активен.

Плагины

Плагины Vim - это аддоны, которые можно использовать для изменения или улучшения функциональности vim.

Есть хороший список плагинов на vimawesome



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow