Есть ли способ заставить vim работать как vscode (хотя бы близко)?

Я должен сказать, что самая жесткая стена между мной и vim - отсутствие простого способа

  1. сопоставить целое слово
  2. с учетом регистра
  3. множественный курсор

enter image description here

соответствуют слову «белый» означает

enter image description here

О множественном курсоре есть ответ: https://stackoverflow.com/questions/11784408/vim-multiline-editing-like-in-sublimetext

It слишком сложен. ctrl+d выберите блок слова, одним щелчком мыши, соответствует еще один выбор будет предпочтительным.

То, что я хочу, так же просто, как возможно, нет метра установки какого-либо плагина. Обычно я использую vim для проверки какого-либо файла, но когда мне нужно найти и заменить или использовать множественный курсор, я должен переключиться на vscode или sublime.

Это большая стена для меня, чтобы использовать vim. Как я могу настроить / подключить Vim сделать это достаточно легко для трех пунктов.

1
задан 29 June 2019 в 12:26

1 ответ

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

Распознайте целое слово

Можно распознать целое слово при поиске в Vim при помощи \< и \> привязки вокруг слова.

Например:

/\<withColumn\>

Но более легкий путь вокруг этого состоит в том, чтобы использовать * и # команды, которые будут искать слово под курсором (* передайте, # назад), и будет автоматически использовать \< и \> привязки при выполнении так. Я нахожу, что они имеют тенденцию быть самыми полезными, когда я - написание кода, так как у меня обычно есть случаи функции/переменной/имени класса, которую я ищу рядом, таким образом, я могу просто перейти там и использование * найти следующее возникновение и затем повториться с n продолжать находить дальнейшие случаи.

Если Вы склонны использовать / ищите чаще, и требуется экономить на вводе \< и \>, рассмотрите добавление отображения, такого как:

nnoremap g/ /\<\><left><left>

g/ сочетание клавиш запустит поиск, затем ввести \< и \> для Вас и наконец идут оставленные дважды, таким образом, курсор является правильным в середину их, готов к Вам ввести критерий поиска, который будет затем искаться в целом слово только.

Чувствительность к регистру

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

  • set ignorecase: Это сделает поиски нечувствительными к регистру, поэтому удостоверьтесь, что у Вас нет того набора, если то, что Вы хотите, является поиском с учетом регистра. Можно проверить текущий статус этой установки с :set ignorecase? и можно отключить его с :set noignorecase (или :set noic.)

  • set smartcase: Этот делает поиски нечувствительными к регистру только, когда существуют только строчные буквы в критерии поиска и 'ignorecase' также установлен. Так, более точно это делает их чувствительными к регистру, когда существуют символы верхнего регистра в критерии поиска, даже если 'ignorecase' установлен.

Возможно, что у Вас есть оба из них набор (это - вполне популярная установка), и Вы видите поиски без учета регистра, когда Ваши критерии поиска являются всем нижним регистром... Таким образом, Вы могли бы хотеть изучить удаление 'ignorecase' от Вашего .vimrc или переопределение его явно с set noignorecase если всегда чувствительный к регистру то, что Вы хотите.

Можно также переопределить, они в особенности ищут, с \C и \c как часть Вашего критерия поиска.

Если Вы хотите, чтобы Ваше отображение для поиска всего слова всегда было чувствительно к регистру, рассмотрите это отображение:

nnoremap g/ /\C\<\><left><left>

Это не зависит от установки 'ignorecase' вообще.

Несколько курсоров

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

Этот ответ, с другой стороны, упомянул vim-multiple-cursors плагин, который, насколько я могу сказать, делает то же самое как несколько курсоров в VSCode или Сублимате.

(Я не действительно пользователь этого плагина, или пользователь VSCode или пользователь Сублимата, таким образом, я не мог сказать наверняка, но рассмотрение видео, похоже на то, что Вы описываете.)

Я поощрил бы Вас более тщательно изучать этот плагин и видеть, соответствует ли он Вашему варианту использования.

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

Я рекомендую статью "You do not need more than one cursor in vim" Christoph Hermann для большого взятия по этой теме со многими конкретными примерами и усовершенствованными вариантами использования далеко вне того, что Вы смогли бы выполнить с несколькими курсорами.

Так, короче говоря, если Вы захотите несколько курсоров, проверите vim-multiple-cursors плагин, но если Вы захотите изучить команды в Vim, который может взять тот же вид редактирования заданий, прочитать статью (или искать его онлайн, то Вы, конечно, найдете больше сообщений об эффективном рефакторинге кода с Vim.)

0
ответ дан 7 December 2019 в 19:44

Другие вопросы по тегам:

Похожие вопросы: