Я только что обнаружил , что в последнее время , когда вы входите в неразрывный пробел (NBSP) в HTML - документе
и установите encoding
utf-8, вам не нужно будет вводить nbsp;
несколько раз для форматирования текста. Я сначала
подумал, эй, почему бы мне не отобразить это на пробел, как :imap <SPACE> <C-R>=nr2char(160)<CR>
.
Позже я отредактировал свой .vimrc
и когда я перезапустил Vim, я получил дюжину ошибок о том, что какая-то функция нуждается в
имя, хотя я дал его. Я понял, что nbsp
не рассматривается как пробел (дух), хотя это
выглядит как один. Итак, я подумал, что лучшим способом было бы иметь сопоставление типов файлов, чтобы при редактировании html-документа пространство вставляло nbsp
и обычный пробел chr(32)
при редактировании любого другого файла.
Как мне это сделать?
2 ответа
Вы можете использовать плагины файлового типа, которые получают только тогда, когда файл имеет определенный тип файла. Для этого создайте файл ~/.vim/ftplugin/html.vim
и поместите ваши команды в этот файл. Если файл уже существует, вы можете создать каталог с именем html, и тогда каждый файл в каталоге будет получен. Посмотрите :h ftplugin-name
для других опций именования. (Если каталоги не существуют, создайте их)
Все, что вам нужно иметь в вашем vimrc - это filetype plugin indent on
(для этого отступ не нужен, но обычно полезен).
Также может быть важно сделать отображение локальным для буфера только с помощью
map <buffer>
Также может быть полезно просмотреть :h ftplugin
и :h filetype
au[tocommand]
Команда а.е. принимает событие FileType
, который работает , когда filetype
установлен (например , при запуске с именем файла). Например, в ~/.vimrc
:
au Filetype python source ~/.vim/scripts/python.vim