Коли ви хочете шукати текст у vim, ви введете, /а потім рядок, яку шукаєте.
Однак, коли рядок довгий, і ви хочете зробити це кілька разів, чи є спосіб зробити це, щоб вам не довелося вводити /andthisreallylongstring
більше одного разу?
Коли ви хочете шукати текст у vim, ви введете, /а потім рядок, яку шукаєте.
Однак, коли рядок довгий, і ви хочете зробити це кілька разів, чи є спосіб зробити це, щоб вам не довелося вводити /andthisreallylongstring
більше одного разу?
Відповіді:
Після завершення пошуку натисніть "n", тоді воно повторить попередню дію (пошук).
N
перейде до попереднього результату.
/
буде згадуватися останній пошуковий термін
q/
буде показано вікно, яке можна редагувати із усіма останніми пошуковими термінами.
/
та Enter повторить попередній пошук. Натискання ?
та клавіша Enter повторить попередній пошук назад.
/Ctrl-F
альтернатива тому, q/
що може бути простішим мнемонічним (ctrl-f == знайти). Як і q, він також працює в командному режимі.
Якщо рядок, який ви шукаєте, знаходиться під курсором, ви можете ввести його *для пошуку вперед або #для пошуку назад.
Як я зазвичай шукаю щось подібне;
Vim зберігає історію ваших пошукових запитів, тому якщо вам потрібні попередні пошукові запити, ви можете натиснути клавіші "/" та використовувати клавіші Вгору та Вниз та <Ctrl-P> <Ctrl-N> для перегляду історії пошуку.
Ви також можете використовувати "?" замість '/' для пошуку назад.
Я також люблю використовувати:
set ignorecase smartcase
Тепер це буде пошук з урахуванням регістру, якщо у рядку пошуку є великі літери.
Два додаткових рад , які можуть зробити ваш пошук більш ефективні set hlsearch
і
set incsearch
.
set hlsearch
, ну, висвітлює результати пошуку. Введіть, :noh
щоб вимкнути їх, коли вам це більше не потрібно.
set incsearch
вмикає поступовий пошук.
Витягнуто з :help incsearch
Вводячи команду пошуку, покажіть, де узор, як було введено досі, відповідає. Збірна рядок виділяється. Якщо шаблон недійсний або його не знайдено, нічого не відображається. Екран оновлюватиметься часто, це корисно лише для швидких терміналів.
Без цього incsearch
ваші результати відображатимуться лише після натискання <CR>
на ваше ключове слово.
Приклад:
Ви хочете шукати wildignore
Ви вводите, /wild
і перша відповідність виділяється автоматично.
Потім наберіть i
і перейдіть до наступного правильного поєднання.
Ще одна порада, яка ще не висвітлена: натиснувши символи, q
потім /
ви побачите список попередніх пошукових термінів. Ви можете редагувати їх, як і будь-який інший рядок у документі, а потім натисніть клавішу Enter, щоб повторно використовувати їх для нового пошуку.
Натиснувши, /щоб почати пошук, ви можете стрілку вгору, щоб прокрутити історію пошуку.
Ви можете ввести регулярний вираз, щоб уникнути необхідності вводити весь пошуковий термін: and.*longstring
Чи просто удари / без аргументів, що випливають, не працюють для вас? У всіх наших системах це призводить до повторення будь-якого останнього пошуку.
Існує приємний зразок, який ви можете дотримуватися, щоб шукати вирваний текст . Тоді вам навіть не потрібно вводити слово саме по собі, якщо ви перейшли до нього іншими способами, ніж пошук. Підсумовуючи це, якщо ви користуєтесь першим символом слова, яке потрібно шукати:
v
e
y
/
Ctrl-r
0
Enter
(потім продовжуйте наступний матч з n або N)
Однак *
(або #
) виконує майже те саме, що і всі ці команди. Єдина відмінність полягає в тому, що ви можете бути гнучкими в тому, скільки вказаного вами слова (а не e, до кінця слова ви можете вибрати стільки, скільки хочете, наприклад, 9l)
/string
- Шукати вперед для рядка?string
- Пошук за рядкомn
- Пошук наступного екземпляра рядкаN
- Пошук попереднього екземпляра рядкаДуже багато часу при програмуванні я хочу шукати aVeryLongVariableNameInTheProgram
.
In vim ви можете дуже легко перетягувати текст у буфер / реєстр, а потім шукати його:
"Byw
щоб дістати текст aVeryLongVariableNameInTheProgram
до буфера B (виберіть улюблений, я використовував B)/^RB
(косою рисою, Ctrl-R, B), щоб вставити буфер B на рядок пошукуЗвичайно, ви також можете потягнути до кінця рядка і т. Д. Замість того, щоб поривати одне слово - я просто випадково використовую вищезгадану послідовність.
Крім того, ви можете вставити вміст будь-якого реєстру в рядок пошуку, натиснувши Ctrl+, Rа потім ім'я регістра, наприклад, / Ctrl+ R0 Enter.
Чи довгий рядок, який ви вводите ім'я змінної? Або довгий рядок, який є у вашому тексті? Потім натисніть, *
щоб шукати слово / рядок під курсором.