Команда для размещения обратных меток вокруг текущего слова

#vim #markdown

#vim #markdown

Вопрос:

Мне приходится форматировать множество файлов в markdown вручную, и мне часто приходится заключать некоторые изолированные слова в обратные метки, чтобы получить их в виде диапазона кода, т.Е.: object.method -> `object.method`

Я использую vim, и мне было интересно, как я мог бы написать и сопоставить с некоторой клавишей команду, которая бы помещала обратные метки вокруг слова под курсором, например, просто нажав F1?

Спасибо!

Ответ №1:

Канонический ответ заключается в использовании плагина surround от Time Pope, который позволяет легко окружать выделение.(Если только вы не хотите устанавливать какой-либо плагин)

Комментарии:

1. ysiW` и viWS` оба являются хорошими способами достижения вашей цели с использованием объемного звучания

Ответ №2:

Еще одно (грубое) решение без плагинов ради разнообразия:

 nnoremap <key> ciw`<C-r>"`<Esc>
xnoremap <key> c`<C-r>"`<Esc>
  

но да, просто установите surround.

Ответ №3:

в lh-скобках уже определено несколько сопоставлений для markdown:

  • обратная метка вставит пару обратных меток в режиме вставки или окружит текущее слово или текущий выделенный фрагмент (то, что вы искали, и это окружение также предоставляет свой собственный «синтаксис»)
  • * -> *<cursor>* ; дважды для **<cursor>** ( <localleader>* для окружения)
  • _ -> _<cursor>_ ; дважды для __<cursor>__ ( _ для окружения)
  • ~ -> <del><cursor></del> ( <localleader>~ для окружения)
  • <BS> -> в режиме ВСТАВКИ удаляет пустую пару, когда курсор находится внутри нее.

Ответ №4:

Вот одна строка, которую вы можете попробовать:

 :nmap <F4> :s/(<c-r>=expand("<cword>")<cr>)/`1`/<cr>
  

После выполнения этой команды нажатие клавиши F4 сделает то, что вы хотите, т. е. заменит слово под курсором на то же слово, окруженное обратными метками.

[ОБНОВИТЬ]

Это может не сработать для чего-то вроде object .Метод. Для этого приведено новое отображение в визуальном режиме. Выберите блок текста, который вы хотите окружить обратным метком, и нажмите F3

 :vnoremap <F3> <Esc>`>a`<Esc>`<i`<Esc
  

Комментарии:

1. xnoremap будет еще лучше.