Я использую mvim на моем Mac OS X 10.7.
Как пометить текст для выполнения операций копирования, вставки, удаления и т.д.? Из gvim для Windows я привык использовать клавишу Shift для этого, но на Mac это не работает.
В Windows GVim использует специальный скрипт, разработанный для облегчения использования. С другой стороны, вы можете пройти (не очень) длинный путь, не изучив Vim должным образом.
Существует два основных способа "дергать", "ставить" и "удалять" произвольный текст в Vim:
Использование визуального выбора
Это работает более или менее похоже на то, к чему вы привыкли, ну везде: вы выбираете часть текста с визуальной обратной связью, а затем воздействуете на нее.
В обычном режиме поместите курсор на один конец текста, с которым вы хотите что-то сделать.
Войдите в визуальный режим с помощью v
.
Переместите курсор на другой конец.
Нажмите y
чтобы скопировать выделенный текст, d
чтобы удалить его, c
чтобы удалить его и войти в режим вставки , P
чтобы заменить его содержимым регистра по умолчанию.
Готово.
v
имеет два очень полезных варианта: V
для входа в режим визуальной линии и <C-v>
для входа в режим визуального блока .
Вот пример с последовательностью v<left><left>…<left><left>y
(конечно, есть более эффективные способы):
Смотрите :help visual-mode
.
Использование движений и текстовых объектов
Этот очень отличается от нормы и также чрезвычайно эффективен.
В обычном режиме поместите курсор на один конец текста, с которым вы хотите что-то сделать. Некоторые текстовые объекты / движения не требуют этого.
Нажмите y
(или d
или c
).
Определите диапазон или цель, по которой действовать с помощью i(
или f"
.
Готово.
Вот пример с этой последовательностью dta
:
Смотрите :help motion.txt
.
Конечно, он работает одинаково на Windows, Linux и Mac OS X, и, конечно, вы можете смешивать и сочетать эти два метода в соответствии с вашими потребностями.
Пример "дергания" может быть достигнут с помощью vbbby
, v4by
, v2Fiy
, v?ip<esc>y
, y2Fi
и т. д. в зависимости от количества слов / строк, с которыми вы имеете дело, и пример "удаления" может быть достигнут с помощью v<right><right>…<right><right>d
, vll…lld
, vwwwhd
, vfad
и т. д.