Расширить движение f и t до следующих строк

16

Есть ли способ, который t{char}и f{char}будет продолжать работать в следующих строках, если {char}нет в данной строке?

Я хотел бы избежать использования, /{char}<CR>чтобы сохранить 1 нажатие клавиши и не иметь подсветки поиска, особенно когда мне это нужно в сочетании с глаголами (например dfa, ct.).

cbaumhardt
источник
2
Вы можете сделать, d/aчтобы удалить к следующему aи c/.удалить к следующему .. Если вы используете hlsearchи не хотите этого при выполнении этой операции, вы можете создать отображение, которое выполняет вашу d/операцию, а затем отключает выделение (заканчивается на :nohlsearch).
Джадерберг
2
Вы можете использовать (или изучить) плагин, такой как github.com/rhysd/clever-f.vim (при значенииg:clever_f_across_no_line 0 и других опциях, включенных / отключенных по желанию).
VanLaser
1
Даху создал для этого плагин: github.com/dahu/vim-fanfingtastic
EvergreenTree,
1
Я все еще думаю, что лучший плагин для этого - easymotion
Vitor
1
Я также сделал плагин: улучшенный
фут

Ответы:

6

Я также некоторое время использовал dahu / vim-fanfingtastic и нашел его очень полезным. Он поддерживает семантические повторы .благодаря библиотеке tpope / repeat.vim, которую вы также должны установить.

Альтернатива - крисбра / улучшенный фут, который делает более или менее то же самое.

В rhysd / clever-f.vim есть возможность включить многострочный поиск, хотя его основной функцией является возможность fповторения текущего поиска, как ;это уже делается.

Все те ручки ;и ,ключи, как и ожидалось.

Недостаток с многострочно fи в tтом , что если вы попали в неправильный ключ, то будет снято с текущей строкой , чтобы где - то неожиданный в файле. Ctrl-Oможет помочь в такие моменты. (Это может быть опасно с cизменением, если вы не понимаете, что вы только что проглотили несколько строк, но это были только проблемы с зубами для меня.)

Существуют и другие связанные плагины с немного отличающимися подходами, такие как justinmk / vim-sneak и goldfeld / vim-seek, которые запрашивают два символа , облегчая (но все еще не гарантируя) попадание в целевое местоположение.

И тогда есть easymotion / vim-easymotion . Это предлагает множество мощных клавиш управления движением , некоторые из которых требуют дополнительного нажатия одной или двух клавиш для подтверждения целевого символа, когда есть много кандидатов.


Но в настоящее время я использую решение для дома. Я работал с автором EasyMotion, чтобы создать fи t прошить маркеры подсчета для всех соответствующих персонажей перед вами.

введите описание изображения здесь

Это действует как естественный помощник для движений vanilla vim. Когда вы пытаетесь двигаться куда-то, fxно потом обнаруживаете, что xна пути больше s, чем вы думали, вы можете прочитать число, которое вспыхнуло над персонажем, к которому вы стремитесь, и затем сделать [count];прыжок туда.

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

Однако для cопераций изменения все же предпочтительнее сделать это правильно с первого раза . В этих случаях я рекомендую провести дополнительное нажатие клавиши в vвизуальном режиме или использовать один из гарантированных переходов EasyMotion.

joeytwiddle
источник
2

есть плагин, который делает то, что вы, кажется, хотите, как заявлено VanLaser.

https://github.com/dahu/vim-fanfingtastic

Теперь для правильной работы требуется повторный плагин, поэтому он вам тоже понадобится:

https://github.com/tpope/vim-repeat

Стивен Холл
источник
Вы должны упомянуть и другие альтернативы
Кристиан Брабандт
Это был не я :) Я упомянул github.com/rhysd/clever-f.vim
VanLaser