Переместитесь в следующую прописную букву

moreutils пакету от человечности (и также debian) назвали программу sponge, какой вид - также решает Вашу проблему.

От губки человека:

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

Который позволил бы Вам сделать что-то как:

cut -d  -f  somefile | sponge somefile

4
06.10.2011, 00:43
2 ответа

Существует несколько сценариев там для переопределения команд движения слова (b, e, w) остановиться в прописных буквах в словах CamelCase; camelcasemotion выглядит известным (правовая оговорка: я никогда не использовал его). Wiki Vim имеет несколько примеров более простых сценариев, если Вы предпочитаете делать это сами. Вот относительно простой способ повторно отобразиться C-Left и C-Right обработать слова caml-в-корпусе.

nnoremap <silent><C-Left> :<C-u>call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%^','bW')<CR>
nnoremap <silent><C-Right> :<C-u>call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%$','W')<CR>
inoremap <silent><C-Left> <C-o>:call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%^','bW')<CR>
inoremap <silent><C-Right> <C-o>:call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%$','W')<CR>
8
27.01.2020, 20:47
  • 1
    +1, потому что использование search() не завинчивает Ваш текущий шаблон поиска –  jw013 06.10.2011, 03:34
  • 2
    Принятый из-за CamelCaseMotion. –  greg0ire 05.02.2012, 18:00
  • 3
    Больше великолепия на этом излишестве –  greg0ire 05.02.2012, 18:10

Следующая команда Vim отображается, сочетание клавиш Управления-t (используйте любого удобный, которого Вы желаете) к команде /[A-Z] (сопровождаемый обратной почтой), который будет искать следующую прописную букву в "нормальном режиме" (командный режим). Можно вставить это Ваш .vimrc файл, если Вы желаете (минус :). <c-t> и <return> вводится, как я записал им здесь, и Vim поймет.

:nmap <c-t> /[A-Z]<return>
5
27.01.2020, 20:47
  • 1
    +1, это работает! Каждая прописная буква выделяется хотя... Я искал что-то более собственное, но я не уверен, что оно существует. –  greg0ire 06.10.2011, 00:52
  • 2
    @greg0ire: Да, это является раздражающим. Вы имеете hlsearch набор опции по одной причине или другому. Сбросьте его с :nolhsearch команда. –  Kusalananda♦ 06.10.2011, 01:03
  • 3
    @Kusalananda: попробовать nmap <tab> :call search('[A-Z]', 'W')<CR> –  kev 10.11.2011, 07:27

Теги

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