Как заставить vim рассматривать $ как символ идентификатора? - PullRequest
0 голосов
/ 25 января 2019

Я бы хотел, чтобы vim (после нажатия Ctrl +]) искал теги, содержащие специальные символы, такие как $ или @. Я могу сделать это с помощью команды :tag (например, tag $some$symbol), но она не работает с Ctrl+]. Как я могу настроить то, что vim рассматривает как идентификатор?

1 Ответ

0 голосов
/ 25 января 2019

Глядя на :help CTRL-], он говорит:

CTRL-]              Jump to the definition of the keyword under the
                    cursor.  Same as ":tag {name}", where {name} is the
                    keyword under or after cursor.

Оттуда можно найти :help 'iskeyword' илизаканчиваются на :help word, что объясняет:

Слово состоит из последовательности букв, цифр и подчеркиваний или последовательности других непустых символов, разделенныхпустое пространство (пробелы, табуляции,).Это можно изменить с помощью опции «iskeyword».Пустая строка также считается словом.

Поэтому вам необходимо добавить $ к опции 'iskeyword':

:setlocal iskeyword+=$

Создание этого постоянного

Параметр 'iskeyword' имеет значение локально для буфера , и многие синтаксические сценарии полагаются на правильные настройки для выделения.Следовательно, не рекомендуется изменять это глобально для всех типов файлов (с :set в вашем ~/.vimrc).

Вместо этого вы должны указать (несколько) типов файлов, где вам это нужно, изатем определите это только локально.

Поместите соответствующую команду :setlocal в ~/.vim/after/ftplugin/{filetype}.vim, где {filetype} - фактический тип файла (например, java).(Для этого требуется, чтобы у вас было :filetype plugin on; использование каталога after позволяет вам переопределить любые настройки типа файла по умолчанию, выполненные с помощью $VIMRUNTIME/ftplugin/{filetype}.vim.)

В качестве альтернативы, вы можете определить :autocmd FileType {filetype} setlocal iskeyword+=$ прямо в вашем ~/.vimrc, но это становится громоздким, когда у вас есть много настроек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...