Які функції Vim ви використовуєте? [зачинено]


13

Я майже цілий день провожу програмування у Vim, і я впевнений, що багато з вас теж. Які функції ви використовуєте, що роблять щоденне кодування набагато кращим? Я використовую gv , який дозволить вам переібрати раніше вибраний текст. Це чудово для повторення!


1
Для історичних цілей ось посилання на оригінальне запитання про так: stackoverflow.com/questions/95072/…
Jax

Зверніть увагу на мій коментар нижче, і вам навіть не доведеться набирати текст gv. :)
Натан Лонг

Відповіді:


9

:% s / x / y / g

Ця команда замінює всі екземпляри x у поточному файлі y . Це в основному лише знахідка та заміна, але я користуюсь нею так часто, оскільки дізнався її на роботі, що вона стала неоціненною.

Також / рядок пошуку

потім n для навігації по всіх екземплярах рядка пошуку у файлі. Чудово підходить для налаштування вручну набагато легше, особливо якщо ви не можете застосувати правило до всього файлу.


Я фактично працюю над перетворенням великого розділу нашої кодової бази на роботі, і я роблю це повністю з регулярними виразами vim (поки що). Це працює дуже добре!
Фроу Шмідт

Додайте "c" в кінці цього, щоб зробити команду інтерактивною. наприклад:% s / x / y / gc
sml

1
Зауважте, що %саме там робити заміну - %означає "поточний файл". Якщо візуально виділити деякі рядки та тип :s, ви можете зробити заміну саме в цьому виді .
Натан Лонг

7

== робить приємне автоматичне відступ на поточному рядку.

Однак, як правило, я використовую =рухом, як =Gвідступ до кінця файлу, або =i}для відступу всередині поточного набору фігурних дужок.


2
Також пам’ятайте >> та <<, які можуть робити (не) відступи вручну.
Фроу Шмідт

@Frew - так. Крім того, якщо ви додасте vmap <Tab> >gvі vmap <S-Tab> <gvдо свого .vimrc, ви можете відступати та відміняти відміни відповідно Tab та Shift-Tab, і він повернеться в режим візуального вибору, щоб ви могли відступати чи відміняти подальше.
Натан Лонг

6

=% для автоматичного відступу всього в блоці коду.


Ооо! Це для мене нове!
Frew Schmidt

Це працює, якщо ваш курсор на початку {. Якщо ви всередині блоку, ви можете зробити це =i{для "відступу всередині фігурних дужок".
Натан Лонг

5

Використовуйте *в командному режимі для пошуку слова під курсором.


1
І не забувайте, що це сестра команда #, яка робить те саме, але йде назад, а не вперед!
Frew Schmidt

5

:!Команда - безцінна для lsING, і «Суд трійник» трюк.

Мене попросили пояснити трюковий трюк. В основному, це дозволяє зберегти текстовий файл з адміністратором priveleges, навіть якщо ви не запустили VIM як root:

:w !sudo tee %

Ви можете пояснити трюк "sudo tee" тут :-) Також я люблю робити:! Сортування після виділення змінних визначень та чого ще.
Frew Schmidt

Ви справді можете перетворити Vim у чудовий "сценарій" редактор, використовуючи:! і деякі сценарії оболонки / Python / Perl / інші.
Йонас

У мене фактично є альтернатива !ls, яка запускає a vnew, виводить r!lsу новий буфер і скорочує його по горизонталі. Мені не шкода запам’ятовувати всі файли в каталозі з понад трьома в ньому;)
new123456

4
.

Удар. клавіша повторює попередню команду. Прекрасно за, скажімо, редагування .iniчи так.


це напрочуд потужно, але потрібно трохи подбати, перш ніж ви дійсно зможете поправитись із цим.
Аарон


2

Я завжди використовую gq, щоб повторно робити перерви у рядках електронної пошти, текстових файлів тощо. Дуже корисно під час відповіді на електронну пошту (я використовую сосну) та редагування кількох попередніх відповідей.


Ооо, я б зовсім забув про це!
Frew Schmidt

Чому, о, чому не можуть більш популярні клієнти електронної пошти підтримувати подібну функціональність?
erichui

Останнім часом я використовую gw замість gq, оскільки він зберігає позицію курсору
SergioAraujo

2

З чого почати ... Ось речі, які я можу пригадати, я використав за останні 5 хвилин.

  • Дерево NERD - вивчення файлів. Робить VIM більше схожим на IDE.
    • Однією з величезних речей для мене є можливість перейти cdдо каталогу, а потім перейти до підказки оболонки через мої відображення оболонок (нижче).
  • ci за випорожнення всього, що ви застрягли.
  • :! для запуску стандартних додатків.
    • У мене є відображення для запуску підказки оболонки, клієнта mysql, файлів журналу apache тощо.
    • Підривна інтеграція завжди приємна. Швидкі diffs, stats тощо.
  • :abbr для того, щоб зробити багаторазові введення великих блоків, відходять.
  • Вкладки. Потрібно сказати більше?
  • Розбиття файлів, завжди добре. :Sexзавжди приємно.
  • :set paste! щоб уникнути автоматичного відступу на amok.

Я використовую все це, крім abbr. Я схильний робити набагато більше макросів, ніж абревіатури.
Frew Schmidt


1

Я активно використовую такі команди під час написання чи переходу коду C / Tcl / Perl:

Копіювати-вставити код

CTRL-fа також CTRL-bдля переходу сторінки вперед і назад
%для проходу по блоку за блоком перехід до
^ початку рядка до
$ останнього кінця рядка

Почніть вибирати код, використовуючи команду v(візуальний режим) та будь-яку клавішу проходу вище
yдля копіювання
pдля вставки

s для видалення символу та переходу до режиму вставки для введення нового тексту.

Перегляд рівня коду (потрібна дисципліна стилю кодування)

]]для запуску наступної функції
[[для запуску попередньої функції

CTRL-] щоб перейти до визначення змінної / функції / макросу, якщо є теги.

Пошук

* => пошукове слово (або текст, вибраний за допомогою v) у напрямку вперед
# => слово пошуку (або текст, вибраний за допомогою v) в напрямку назад
n => виконання попередньої команди пошуку в напрямку вперед
N => виконання попередньої команди пошуку в напрямку назад

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


Ах,]] та [[для мене нові. Круто!
Фров Шмідт


0

Я колишній користувач TextPad і запам'ятав багато клавіш акселератора програми. Однією з перших речей, які я зробив у Vim, було вивчення функції карти для збереження послідовності (пошук F5, F8 заміна тощо). Я створив свою особисту кольорову схему і багато позичив у інших файлів vimrc. Viva Vim! Налаштовується в будь-якій мірі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.