Розгорніть f і t рух до наступних рядків


16

Чи існує спосіб, який t{char}і f{char}продовжить працювати в наступних рядках, якщо {char}його немає в заданому рядку?

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


2
Ви можете зробити d/aдля видалення до наступного aта c/.для видалення до наступного .. Якщо ви використовуєте hlsearchта не хочете цього під час виконання цієї операції, ви можете створити відображення, яке виконує вашу d/операцію, а потім відключити виділення (закінчується на :nohlsearch).
jjaderberg

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
Я також зробив плагін: improvedft
Christian Brabandt

Відповіді:


6

Я також деякий час використовував dahu / vim-fanfingtastic і вважав це дуже корисним. Він підтримує смислові повтори .завдяки бібліотеці tpope / repe.vim, яку також потрібно встановити.

Альтернативою є крисбра / покращена крадіжка, яка робить більш-менш те ж саме.

rhysd / smartver-f.vim має можливість ввімкнути багаторядкові пошуки, хоча його основна особливість полягає в тому, щоб дозволити fповторити поточний пошук, як ;це вже робиться.

Ці всі ручки ;та ,ключі, як очікувалося.

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

Є й інші пов'язані плагіни, з дещо різними підходами, такі як justinmk / vim-sneak та goldfeld / vim-search, які підкажуть для двох символів , що полегшує (але все ще не гарантовано) потрапляння на ваше цільове місце.

І тоді виникає easymotion / vim-easymotion . Тут пропонується безліч потужних клавіш руху , для деяких потрібна додаткова натискання клавіш або дві для підтвердження цільового символу, коли є багато кандидатів.


Але в даний час я використовую домашнє рішення. Я працював з автором EasyMotion, щоб скласти fі t прошивати маркери підрахунку всіх відповідних символів перед вами.

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

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

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

Однак для cоперацій із зміною, все-таки краще, щоб це було правильно в перший раз . У цих випадках я рекомендую провести додатковий натискання клавіші у vрежимі Visual або скористатися одним із гарантованих стрибків EasyMotion.


2

Є плагін, який робить те, що ви, здається, хочете, як заявив VanLaser.

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

Тепер він вимагає, щоб плагін для повторної роботи працював належним чином, тому вам знадобиться також:

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


Ви також повинні згадати інші альтернативи
Крістіан Брабандт

Хіба не я :) Я згадав github.com/rhysd/clever-f.vim
VanLaser
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.