Vim Введение " Просто о Vim "


Слова, предложения, абзацы



Pdf просмотр
страница3/6
Дата24.11.2016
Размер1.18 Mb.
Просмотров1728
Скачиваний0
1   2   3   4   5   6
Слова, предложения, абзацы
,
Мы рассмотрели как переходить к символам и строкам Но мы намерены рассматривать текст как набор
,
,
, слов и способ их компоновки в предложения абзацы разделы и так далее Так почему бы не организовать
, .
перемещение по таким частям текста т . "
"?
е по текстовым объектам
:
Давайте возьмем несколько первых слов из нашего текста
The polar regions are of special interest, as they might contain ice.
,
Сперва давайте поместим курсорна первый символ нажав
^
[T]he polar regions are of special interest, as they might contain ice.

:
Примечание







.
мы использоваликвадратные скобки чтобы отметить позициюкурсора
('w'ord)?
Нужно перейти на следующееслово
Нажмите w
'p' 'polar'.
Курсорпереместится на в
The [p]olar regions are of special interest, as they might contain ice.
2
?
'w':
Как перейти на слова вперед Нужно добавить количество префиксом к
2w
The polar regions [a]re of special interest, as they might contain ice.
,
('e'nd)
,
Аналогично для движения к концу следующегослова нажмите e
The polar regions ar[e] of special interest, as they might contain ice.
('b'ackward),
Для переходана слово назад нажмите b
2
,
Цифра в префиксе
2b
2 переместит назадна слова
The polar [r]egions are of special interest, as they might contain ice.
Смотри
:
help word-motions для получения детальной информации
,
Мы рассмотрели перемещениепо символам и по словам давайте перейдем к предложениям
[C]handrayaan-1 is India's first mission to the moon. Launched by
India's national space agency the Indian Space Research Organisation
(ISRO). The unmanned lunar exploration mission includes a lunar orbiter and an impactor. The spacecraft was launched by a modified version of the PSLV XL on 22 October 2008 from Satish Dhawan Space Centre,
Sriharikota, Andhra Pradesh at 06:23 IST (00:52 UTC). The vehicle was successfully inserted into lunar orbit on 8 November 2008. The Moon
Impact Probe was successfully impacted at the lunar south pole at 20:31 hours on 14 November 2008.
(
Установите курсорна первом символе
^
).
,
Для перемещения на следующеепредложение нажмите
)
Chandrayaan-1 is India's first mission to the moon. [L]aunched by
India's national space agency the Indian Space Research Organisation
(ISRO). The unmanned lunar exploration mission includes a lunar orbiter and an impactor. The spacecraft was launched by a modified version of the PSLV XL on 22 October 2008 from Satish Dhawan Space Centre,
Sriharikota, Andhra Pradesh at 06:23 IST (00:52 UTC). The vehicle was successfully inserted into lunar orbit on 8 November 2008. The Moon
Impact Probe was successfully impacted at the lunar south pole at 20:31 hours on 14 November 2008.
?
Разве это не круто
,
Для перемещения на предыдущеепредложение нажмите
(
,
,
,
Продолжайте пробуйте и посмотрите как быстро вы можете перемещаться Опять же вы можете
, использовать префикс так
3)
3 переместит впередна предложения
Теперь используйте весь текст и попробуйте перемещаться по абзацам Нажмите
}
, чтобы перейти к следующему абзацу и
{
, чтобы переместиться к предыдущему абзацу
,
('bigger')
Обратите внимание что большие скобки для больших текстовых объектов Если вы уже заметили
,
,
,
,
"
Vim это то я вас поздравляю вы уже начали думать как победитель то есть думать как пользователь
(Vimmer)".
,
И снова повторюсь не пытайтесь запомнить
,
,
,
все клавиши постарайтесь ввести это в привычку сделать так чтобы ваши пальцы естественно использовали эти клавиши
Смотри
:help cursor-motions для получения детальной информации
Создание ваших закладок
-
,
Вы пишете какой то текст и вдруг вспоминаете что вам необходимо обновить связанный раздел в том же
,
,
, документе но вы хотите запомнить где вы находитесь в данный момент чтобы вернуться к этому месту
?
позже Что вы сделаете
,
,
,
Можно будет прокрутить текст донужного раздела обновить его а затем прокрутить туда гдевы были Как
,
,
,
, много лишних движений и мы возможно забудем гдемы в последний раз были
Мы можем сделать это в Vim
5-
(
намного умнее Переместим курсор на ю строку в следующем тексте слова
).
Джона Леннона Используем m
а 'a'.
, для создания закладки с именем
Переместим курсор туда куда нам
, нужно например
4j

I am eagerly awaiting my next disappointment. —Ashleigh Brilliant
Every man’s memory is his private literature. —Aldous Huxley
Life is what happens to you while you’re busy making other plans. —John Lennon
Life is really simple, but we insist on making it complicated. —Confucius
Do not dwell in the past, do not dream of the future, concentrate the mind on the present moment. —
Buddha
The more decisions that you are forced to make alone, the more you are aware of your freedom to choose.
—Thornton Wilder
Нажмите 'a
(
) ,
, то есть после одной кавычки следует название отметки и вуаля Vim
(
) переходит назад к
, строке в которой была создана закладка
(A-Za-z),
,
,
Вы можете использовать любой символ алфавита чтобы назвать закладку что означает что вы
52 можете иметь до именованных меток для каждогофайла
Переходы назад и вперед
,
,
В различных перемещениях изученных нами мы часто хотели бы после перемещения возвратиться обратно на прежнее место или к следующей закладке Для этого достаточно просто нажать ctrl-o для переходана прежнееместо и ctrl-i
, чтобы перейти к следующему месту
Части текста
,
Существует много способов которыми вы можете выделить часть текста в Vim и затем выполнить над ним
,
,
(
команду Например если вы хотите визуально выделить часть текста а затем конвертировать регистр из
), верхнего в нижний или из нижнего в верхний регистр используйте клавишу dapping.txt,
Откройте файл который мы создали в предыдущих главах Используя различные клавиши 'dapper'
: переместитесь на первый символ слова во втором абзаце Подсказка используйте
}, j, w
Dapping means being determined about being determined and being passionate about being passionate.
Be a dapper.
Нажмите v
, для начала визуального режима и нажмите ap
, 'a' 'p'aragraph. для выбора и
Нажмите для
, переключения регистра текста Если вы хотите отменить выделение просто нажмите

Dapping means being determined about being determined and being passionate about being passionate. bE A DAPPER.
:
Другая мнемоника для операции над текстовыми объектами aw
-
'a' 'w'ord; означает и a ''
означает строку в
(
, "
"); кавычках например это строка в кавычках ab
-
'a' 'b'lock,
- это и
что означает что либо внутри пары
, скобок и так далее
Смотри
:help object-motions и
:help text-objects для подробной информации
Итоги
,
Мы видели богатые возможности которые дает нам Vim для перемещения по тексту Не обязательно
,
,
, помнить каждое из этих перемещений более важно сделать их привычкой особенно те которые наиболее
, ,
,
, актуальны для вас и когда они становятся привычкой они уменьшают число движений вашей руки вы
, становитесь быстрее и в конечном итоге тратите больше времени на обдумывание содержания вашего
,
,
, документа а не на программноеобеспечение котороевы используете чтобы его написать
Смотри
:help various-motions атакже
:help motion для изучения интересных возможностей перемещений
Внешние ссылки
http:/ / en. wikipedia. org/ wiki/ Chandrayaan-1
Vim :Help (
)
помощь

Введение
Vim
,
,
, имеет такой разнообразный список команд горячих клавиш буферов и так далее Невозможно
,
,
запомнить как они все работают На самом деле и не нужно помнить их все Правильный выход в том
, чтобы знать как найти описаниеосновногофункционала в Vim, когдавам это понадобится
,
,
,
Например вы хотите избежать необходимости вводить длинное имя каждый раз и тут вы вдруг вспомнили что в Vim
,
, есть возможность работать с сокращениями которая поможет вам сделать именно это но вы не
,
?
помните как ей пользоваться Что вы делаете
,
Давайте посмотрим различные пути поиска подсказок отом как пользоваться Vim.
Команда
:help
,
,
,
Первым и самым важным местом куда можно обратиться за помощью является встроенная документация и Vim
,
- имеет одноиз наиболееполных руководств пользователя виденных мной когда либо
,
В нашем случае просто запустите команду
:help abbreviation
, вы попадетена страницу помощи по
, сокращениям и вы можете прочитать отом как использовать команды
:ab и
:iab
,
,
,
Иногда это может быть так просто как в этом примере Если же вы не знаете что искать то вы можете запустить
:help user-manual и просматривать список содержимого всего руководства пользователя и читать
,
,
,
, главы которые как вы думаете имеют отношение к тому что вы пытаетесь сделать
Как читать раздел
:help
-
Давайте возьмем какой нибудь образецвыводакоманды
:help
:
:ab[breviate] [] {lhs} {rhs} add abbreviation for {lhs} to {rhs}. If {lhs} already existed it is replaced with the new {rhs}. {rhs} may contain spaces.
See |:map-| for the optional argument.
,
Обратите внимание что способ оформления помощи в Vim
, является стандартным чтобы сделать
,
,
, использование подсказки простым для нас и мы могли посмотреть те части которые нужны нам вместо
, того чтобы вычитывать всю команду
,
Первая строка объясняет синтаксис то есть как пользоваться этой командой
Квадратные скобки в
:ab[breviate]
, показывают что оставшаяся часть от полного имени команды является не обязательной Вы должны набрать минимум
:ab
, чтобы Vim распознал команду Вы также можете использовать
:abb или
:abbr или
:abbre и так далее до полного имени
:abbreviate
Большинство людей склонны использовать сокращенные формы
Квадратные скобки в
[]
,
'expression' снова показывают что не обязательный параметр
Фигурные скобки в
{lhs} {rhs}
,
,
указывают что это место для заполнения фактическими аргументами 'left hand side' (
) 'right hand side' (
),
которые подставляются Это сокращения от левая рука и правая рука соответственно
,
,
,
В абзаце начинающемся со следующей строки с отступом кратко объясняется что эта командаделает
,
Обратите внимание на второй абзац который указывает вам на дополнительную информацию Вы можете установить курсор на текст между двумя вертикальными символами и нажать ctrl-]
, чтобы перейти по ссылке на следующий раздел
:help
,
Чтобы вернуться назад нажмите ctrl-o
Команда
:helpgrep
,
,
Если вы не знаете название темы вы можете произвести поиск по всей документации для фразы используя
:helpgrep
, beginning,
Предположим вы хотите найти слово просто запустите
:helpgrep beginning
Вы можете использовать
:cnext и
:cprev для перемещения к следующей или предыдущей части
, документации где встречается эта фраза Используйте
:clist
, для просмотра полного списка всех мест где встречается искомая фраза
Быстрая подсказка
Скопируйте следующий текст в Vim
:
и выполните его
:
let
&
keywordprg
=
':help'

,
Теперь установите курсор в любом месте на ключевом слове и просто нажмите
К
Вы перейдете на страницу помощи по этому слову Эта ссылка позволяет избежать необходимости вводить
:help и ключевое слово
Форум и IRC
,
,
Если вы все еще не в состоянии понять что вам нужно делать то тогда вам лучше всего обратиться к другим пользователям Vim,
,
, чтобы они помогли вам Не волнуйтесь это на самом деле очень просто и
,
Vimmers удивительно то что другие готовы помочь вам
Первый шаг заключается в поиске списка рассылки Vim
,
- и поиске по нему может уже кто то ответил на ваш вопрос Просто зайдите на страницу поиска
Vim, а затем введите ключевые слова вашего запроса В
, большинстве случаев многие общие вопросы будут уже освещены так как в этой рассылке высокая
, . .
- активность участников те много многолюдей задают вопросы и дают ответы в этой группе
,
Если вы не можете найти подходящий ответ вы можете зайти на форум Vim IRC.
IRC
Откройте
, приложение к примеру
XChat
(
Windows, Linux, BSD) доступно для или
Colloquy
(for Mac OS X),
"FreeNode",
#vim, подсоединитесь к сети войдите в канал правильно задайте свой вопрос и ждите ответа
Возможно пройдет не однаминута пока не последует ответ
,
,
,
Если никто не отвечает на ваш вопрос наверное они все заняты поэтому повторите попытку позже или
,
, попробуйте перефразировать ваш вопрос так чтобы он стал легким для того кто хочет помочь вам В
,
, противном случае отправьте сообщениев список рассылки упомянутый выше
Итоги
,
-
Существует большое количество информации отом как что то сделать в Vim,
Vimmers и многие с радостью помогут вам Сообщество Vim является одним из самых сильных сторон редактора Vim, поэтому не забывайте использовать ресурсы и присоединяйтесь к растущему сообществу



,


.
Истинноенаслаждениев поиске знания а нев самом знании -- Isaac Asimov
Внешние ссылки
http://tech.groups.yahoo.com/group/vim/msearch_adv http://www.silverex.org/download/ http://colloquy.info/
Vim :

Основы редактирования
Введение
Vim
/
, cut/copy/paste, undo/ redo
Давайте изучим основные команды в для чтения создания файлов и поиска
Чтение и создание файлов
Буферы
,
Когда вы редактируете файл то Vim переносит текст из файла на жестком диске в оперативную память компьютера
,
,
Это означает что копия файла сохраняется в памяти компьютера и все ваши изменения происходят в
,
,
, памяти компьютера и сразу же отображаются После того как вы закончите редактирование файлов вы
,
, можете сохранить файл что означает что Vim запишет текст из памяти компьютера на жесткий диск
,
,
«
».
,
Память компьютера используемая для временного хранения текста называется буфер Заметим что эта
,
"save" же концепция является причиной почему у нас есть пункт меню во всех редакторах или текстовых
, процессорах которыми мы пользуемся
Теперь откроем Vim,
Hello World hello.txt. запишем слова и сохраним это как файл
Если вам нужно
,
, напомнить как это сделать пожалуйста пересмотрите главу Первые шаги

Swap
,
Теперь вы можете видеть что в том же каталоге был создан другой файл с примерным названием hello.txt.swp.
,
:
Выполните следующую команду чтобы узнать точноеимя файла
:swapname
?
Что это за файл Vim
,
, делает копию буфера в файл который регулярно сохраняется на жестком диске так
-
( что если что то пойдет не так в случае выключения компьютера или вылета Vim), у вас будет сохраненная
, версия правок созданных вами после последнего сохранения в оригинальный файл Этот файл называется "swap file", поскольку Vim
(
).
сохраняет содержимое буфера памяти компьютера на жесткий диск свопирует
Смотри
:help swap-file для подробной информации
Сохранение моего файла
,
,
Теперь когдафайл был загружен давайте сделаем незначительноередактирование Нажмите клавишу для
,
, изменения регистра символа на котором стоит курсор Обратите внимание что Vim теперь пометил файл
(
, как изменённый например в графической версии Vim
+
). появляется знак в строке заголовка Вы можете
, открыть этот файл в другом редакторе и проверить что эти изменения еще не сохранены Vim пока изменил только буфери несохранил эти исправления на жесткий диск
:
Вы можете записать буферв оригинальный файл на жестком диске запустив
:write
:
, vimrc
:
Примечание Для простоты сохранения добавьте следующую строку в ваш файл " To save, ctrl-s.
nmap :w
imap :wa
Теперь вы можете простым нажатием комбинации ctrl-s сохранить файл
Работа в моем каталоге
Vim
, запускается используя ваш домашний каталог как каталог по умолчанию и все операции будут происходить в этом каталоге
,
,
Для открытия файлов расположенных в других каталогах вы можете использовать полный или
:
относительный путь к ним
:e ../tmp/test.txt
:e C:\\shopping\\monday.txt
Или вы можете переключить Vim
:
на другой каталог
:cd ../tmp
:cd
'c'hange 'd'irectory (
).
это сокращениеот изменить директорию
,
Чтобы посмотреть рабочий каталог в которомVim
,
:
ищет файлы выполните
:pwd
:pwd
'p'rint 'w'orking 'd'irectory.
это сокращение от слов
Cut, Copy и Paste
Sean Connery
'
Как сказал в фильме
Finding Forrester
':

Не думайте пишите Вы должны писать сначала от вашегосердца А переписывать от головы
,
!
Первый ключ к писательству пишите недумайте
,
, . .
Когда мы переписываем мы часто изменяем порядок абзацев или предложений те мы должны иметь
/
/
возможность вырезать копировать вставлять текст В Vim
:
мы используем несколько иную терминологию desktop world vim world operation cut delete d
copy yank y
paste paste p
,
('cut'ting) -
В нормальной терминологии дестопа вырезать это удалить текст и поместить его в буфер обмена В Vim
,
'
' (
эта операция означает что текст из буфера файла удаляется и сохраняется в регистре часть
).
,
, памяти компьютера Поскольку мы можем выбрать регистр где мы будем хранить текст эта операция
("delete").
называется операцией удаления
,
,
('copy')
Аналогично в нормальной терминологии десктопа копировать текст означает копирование текста в буферобмена Vim
("yanks") делает то же самое Дергая текст и размещая текст в регистре
("Paste")
Вставить имеет одинаковый смысл в обоихтерминологиях
, cut/copy/paste
Мы увидели как вы можете производить операции в Vim.
,
Но как вы определите с каким
?
, текстом выполнять эти операции Хорошо что мы уже изучили в предыдущем разделетекстовые объекты
,
Сочетание операции и текстовых объектов означает что мы имеем бесчисленное количество способов управления текстом Давайте посмотрим несколько примеров
Напишем этот текст в Vim (
,
):
точно так как показано
This is the rthe first paragraph.
This is the second line.
This is the second paragraph.
,
Разместите курсор в верхнюю левую позицию нажав
1
и
G
, это переместит нас в первую строку и первый столбецсоответственно
:
'r',
Давайте рассмотрим первый случай Мы напечатали лишний который мы должны удалить Нажмите
3w
3
, для перемещения на слова Теперь нам нужно удалить один символ в текущей позиции курсора
:
:
Примечание есть дваспособа сделать это
Операция
/
Текстовый блок Перемещение
- Delete
Удаление
Один символ в текущей позиции курсора d
l
(L
)
в нижнем регистре
,
Таким образом мы должны просто нажать dl
!
, и мы удаляем один символ Обратите внимание что мы можем использовать l,
хотя это перемещение
,
,
"the".
Теперь мы замечаем что это слово является лишним потому что мы два раза ввели
Давайте
,
,
? подумайте о том какую быструю комбинацию клавиш нам использовать чтобы это исправить Возьмите
,
, паузу чтобы подумать и самим это понять Если не додумались то читайте ниже
Операция
/
Текстовый блок Перемещение
- Delete
Удаление
- Word
Слово d
w
,
Итак нажав dw,
!
, вы удалите слово Ура Так просто и так красиво Вся прелесть в том что такие простые комбинации можно комбинировать для получения большого спектра возможностей
?
-
Как мы можем сделать ту же операцию для строки Строки это отдельный случай в Vim, потому что
,
,
, строки как правило это отдельные мысли в нашем тексте Коротко если вы повторите имя операции
,
, дважды она будет произведена над строкой Так dd удалит текущую строку а yy скопирует текущую строку
Наш примертекста в Vim
:
должен выглядеть примернотак
This is the first paragraph.
This is the second line.
This is the second paragraph.
,
Перейдите на вторую линию нажав j
Теперь нажмите dd и строка должна быть удалена Теперь вы должны увидеть:
This is the first paragraph.

This is the second paragraph.
:
(
)
?
Давайте посмотрим далее как мы выдернем удалим текущий абзац
Операция
/
Текстовый блок Перемещение
- Yank
Выдернуть
Текущий абзац y
ap
,
Таким образом yap скопирует текущий абзац
,
,
Теперь когда мы скопировали текст как мы можем вставить
? его Просто нажав '
p
'
:
Теперь мы увидим
This is the first paragraph.
This is the first paragraph.
This is the second paragraph.
,
,
Обратите внимание что пустая строка также будет скопирована когда мы сделаем yap
, так как p
добавляет дополнительные пустые строки
(paste),
(inserts),
Существуют два вида вставить это аналогично двум видам вставок которые мы
:
рассмотрели раньше p
(
)
нижний регистр вставить после текущей позиции курсора
P
(
)
верхний регистр вставить дотекущей позиции курсора
,
Поняв идею далеемы можем комбинировать ихв болееэффективные методы
?
Как поменять двасимвола Нажмите xp
• x
→ удалить один символ в текущей позиции курсора
• p
→ вставить после текущей позиции курсора
?
Как поменять дваслова Нажмите dwwP
• d
→ удалить
• w
→ однослово
• w
→ перейти к следующему слову

P
→ вставить дотекущей позиции курсора
,
Важно понять что не нужно заучивать эти операции Комбинация этих операций и текстовых
/
, блоков перемещений должны быть автоматическими для ваших пальцев без необходимости прикладывать
, умственные усилия Это произойдет когдавойдет в привычку
Маркировка вашей территории
,
,
,
Вы пишете и вдруг понимаете что вы должны изменить предложение в предыдущем абзаце чтобы
,
,
, подкрепить то что вы пишете в этом разделе Проблема в том что вы должны запомнить гдевы находитесь
, сейчас что бы вы смогли вернуться к нему позже Не запомнит ли Vim
? это для меня Это можно сделать с помощью закладок
Вы можете создать закладку нажав m
, и затем имя закладки которое должно состоять из простых символов a-zA-Z.
,
Например нажатие ma
'a'.
создаст закладку с именем
Нажмите 'a и курсор вернется на строку с закладкой Нажатием 'a вы будете переведены точно на строку и колонку закладки
,
Самое приятное то что вы можете переходить к этой позиции с помощью этих закладок любое время после этого
Смотри
:help mark-motions для болееподробной информации
Машина времени с использованием undo/redo
,
,
,
,
Предположим что вы переписывали абзац но в итоге вы запутались в том что вы пытались переписать и "undo",
вы хотите отменить исправления и вернуться к написанному ранее Здесь мы можем применить
,
, чтобы отменить сделанное Если же позже мы захотим вернуться к тому что мы имеем сейчас мы можем

"redo",
, использовать чтобы мы вернули сделанное Учтите что изменения касаются изменений в тексте и не
, учитывают движениекурсораи другиевещи неотносящиеся к тексту
:
Предположим вы имеете текст
I have coined a phrase for myself - 'CUT to the G':
1. Concentrate
2. Understand
3. Think
4. Get Things Done
Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Step 1 which boils down to one thing - It's all in the mind. That's why it's so hard.
(Abraham Lincoln
"
,
, однажды сказал Если бы я имел восемь часов чтобы срубить дерево я бы
." ,
, потратил шесть часов точа свой топор И чтобы добраться до этой стадии что вам нужно сделать
1,
-
.)
шаг который сводится к одному Это все в голове Вот почему это так трудно
:
Теперь давайте начнем редактирование с первой строки
1.
Нажмите
S
('s'ubstitute) для замены всей строки
2.
After much thought, I have coined a new phrase to help me solidify my approach:.
Наберите текст
3.
Нажмите

,
?
,
Теперь подумайте о том изменения которые мы только что сделали Есть предложения лучше Хм
?
?
предыдущий текст был лучше Как мы можем еговернуть
Нажмите u
(undo)
, для отмены последних изменений и посмотрите что было до этого Вы теперь видите
I have coined a phrase for myself - 'CUT to the G':. текст
Для восстановления последних изменений нажмите ctrl-r
After much thought, I have coined a new phrase to help me solidify my и теперь вы увидите строку approach:.
,
Важно отметить что Vim undo/redo,
,
, ведет неограниченную историю но как правило она ограничена undolevels настройками в Vim и объемом памяти в вашем компьютере
,
,
Теперь давайте посмотрим примеры которые действительно демонстрируют большую функциональность undo/redo в Vim,
: таким возможностям другие редакторы будут завидовать Vim
,
это не только ваш редактор он также выступает в качестве машины времени
,
Например
:earlier 4m
4
, . .
4
"earlier".
вы вернетесь на минуты те состояние текста котороебыло минут назад
,
Сила в том что Vim
,
, превосходно все отменяет и повторяет Например если вы внесли изменения а затем
,
, отменили его а затем продолжили редактирование то изменения на самом деле невозможно извлечь с помощью простого u
снова Но это возможно в Vim с использованием команды
:earlier
:
Вы также можете двинуться впередво времени
:later 45s
45 интервал составит секунд
,
5
:
Или если вы хотите болеепростой подходдля отмены внесенных изменений
:undo 5
undo
:
Вы можете просмотреть дерево используя
:undolist
Смотри
:help :undolist для объяснения работы этой команды
Смотри
:help undo-redo и
:help usr_32.txt для подробной информации
Мощная поисковая машина, но не dotcom
Vim
,
, имеет мощный встроенный поисковый механизм который можно использовать чтобы найти именно
,
,
, то что вы ищете Нужно немногопривыкнуть к силе которую он предоставляет поэтому давайте начнем
:
Давайте вернемся к нашему знакомому примеру

I have coined a phrase for myself - 'CUT to the G':
1. Concentrate
2. Understand
3. Think
4. Get Things Done
Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Step 1 which boils down to one thing - It's all in the mind. That's why it's so hard.
"Step".
,
/Step ( . . /Step
Предположим мы хотим найти слово
В нормальном режиме наберем те и затем enter). клавишу
Мы перейдем на первое вхождение этого слова Нажмите n
и вы перейдете в следующему
('n'ext)
, вхождению а
N
, .
перейдет к следующему слову в обратном направлении т . е к предыдущему вхождению слова
,
?
,
Что если вы знаете только часть фразы или не знаете точного написания Не было бы полезно если бы Vim
?
:
начал поиск при вводепоисковой фразы Вы можете включить это командой set incsearch
Вы также можете сказать Vim
(
)
, игнорировать регистр верхний или нижний регистр текста который вы
:
ищете set ignorecase
:
Или вы можете использовать set smartcase smartcase,
:
Если у вас включен то

/step, . .
,
Если вы ищете те текст введен в нижнем регистре то Vim будет искать любую комбинацию
, верхнего и нижнего регистра текста Например это будет соответствовать всем четырем следующим
- "Step", "Stephen", "stepbrother", "misstep.".
вариантам

Если вы ищите /Step . .
,
,
, те текст введенный вами содержит символы в верхнем регистре то поиск будет только для текста в соответствующем регистре
,
"Step"
"Stephen",
Например мы найдем и
но не "stepbrother"
"misstep.".
или
:
Примечание Я рекомендую вам вставить эти две строки в ваш файл vimrc
( о нем будет сказано
, позже а пока посмотрите
:help vimrc-intro
), для ознакомления чтобы эти опции были включены по умолчанию
,
,
Теперь когда мы поняли основы поиска давайте рассмотрим реальную силу поиска Прежде всего следует
,
, отметить что то что вы даете Vim,
, может быть не только простыми фразами но и может быть "
".
«
»
, выражением Выражение позволяет определить тип текста для поиска а не только точный текст для поиска
,
,
/step steps, step footstep,
Например вы увидели что найдет нам а также и даже если такое слово встречается
, step
, в тексте Что делать если вы хотите найти исключительно слово и ничего больше и чтобы оно не
?
/\.
\< \> являлось частью другого слова Для этого мы можем использовать
Структуры и показывают начальную и конечную позицию слова
,
?
/\d
('digit').
А что если вы хотите найти какое то число Поиск с конструкцией будет искать цифру
Но число "
"
,
/\d\+. это просто группа цифрвместе Мы можем указать одну или более цифрвместе используя
Если мы
,
*
+.
будемискать ноль или болеесимволов мы можем использовать вместо
,
Есть целый рядтаких магических комбинаций которые мы можем использовать в нашей модели поиска
Смотри
:help pattern для детальной информации
Итоги
,
Мы рассмотрели некоторые основные команды редактирования которые мы будем использовать регулярно в работе с Vim.

,










Очень важно что вы повторяли эти операции снова и они сделались для вас привычными.
,
Не обязательно заучивать каждую команду или опции этих команд Если вы знаете как использовать
,
,
,
,
Vimmer.
команду и знаете как найти больше основываясь на ней то вы правильный
,
!
Теперь пойдем далееи начнем редактирование

Внешние ссылки
http://www.imdb.com/title/tt0181536/
Vim :

Углубленное редактирование
Введение
,
,
Давайте опираясь на изученное в предыдущей главе начнем углубленное изучение приемов редактирования в Vim.
Просмотр файлов и чтение команд
,
Мы уже умеем редактировать и записывать файлы ноVim намного болеефункционален
?
Что если вы хотите открыть файл на чтение и не хотите его редактировать Этого можно добиться запустив команду vim -R
, которая запускает Vim
-
,
, в режиме только чтение Или если вы имеете файл уже открытый в
Vim, вы можете запустить
:set ro для создания буфера только для чтения Преимущество использования
, этого варианта будет видно при просмотре больших файлов Это значительно ускоряет просмотр поскольку
Vim не нужно беспокоиться осоздании изменений
,
?
Что если вы хотите вставить содержание иного файла в текущий файл Просто запустите
:r another_file.txt и содержание файла another_file.txt
"
" будет прочитано и вставлено в текущий буфер Это полезно во многих
, случаях таких как объединение двух различных файлов или когда нужно сделать копию файла для
, . .
внесения небольших изменений и тд
Крутым побочным эффектом команды
:r
, является то что вы можете использовать её для чтения вывода
, команд анетолько файлов
,
GCal
:
Например установим программу и запустим её
:r !gcal -s1 -K
(!gcal),
,
Monday (
)
Она вставляет календарь с текущим месяцем с неделей начинающейся с
Понедельника
(s1),
(K).
:
а также показывает номернедели
Текст будет выглядеть примерно так
April 2007
Mo Tu We Th Fr Sa Su CW
1 13 2 3 4 < 5> 6 7 8 14 9 10 11 12 13 14 15 15 16 17 18 19 20 21 22 16 23 24 25 26 27 28 29 17 30 18
,
Представьте себе что вы имеете возможность использовать внешние команды для добавления соответствующей информации в свой текст
Регистры все запомнят
:
Давайте возьмем наш обычный простой текст
I have coined a phrase for myself - 'CUT to the G':
1. Concentrate
2. Understand
3. Think
4. Get Things Done
Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Step 1 which boils down to one thing - It's all in the mind. That's why it's so hard.
,
,
4
,
Теперь предположим что вы хотите скопировать пункта в другоеместо напримерв резюме Вы также
,
- хотите сохранить второепредложение чтобы потом вставить егогде то Было бы неплохосохранить эти два
,
, отдельных фрагмента текста в двух разных местах одновременно продолжить работу а затем позже их
?
,
(
)
, вставить Это достигается с помощью регистров которые опять же часть памяти компьютера с помощью
которых можно быстро сохранять и извлекать текст
,
,
1. Concentrate,
Например вы можете разместить курсорна строке содержащей текст и набрать "a4yy
:
"a
'a'
, использовать регистр с именем для того чтобы
4 4 выполнить раза следующую операцию yy скопировать строку "
4
'a' ".
В переводеэто означает копировать следующие строки в регистр с именем
,
Для следующего шага вы можете визуально выделить второепредложение в последнем параграфеи набрав "bd,
('d'elete)
'b'.
удалить текст в регистр с именем
,
,
Теперь когда мы имеем копию соответствующего текста в буферах мы можем вставить текст гдетребуется
— просто нажатием "ap
,
'p'aste
'a' где вставляет текст из регистра с именем и соответственно "bp вставляет 'b' текст из регистра с именем и так далее
:
Для просмотра содержимоговсех регистров выполните
:registers
,
Видите как Vim clipboard
!
делает простой концепцию и делает еётакой мощной
Смотри
:help registers для информации оразличных типах регистров в Vim.
Форматирование текста
?
,
,
:
Если вы хотите разместить текст по центру Давайте скажем возьмем такой текст
THIS IS THE HEADING
:
Нужно запустить
:set textwidth=70
:center
:
Вы должны получить следующий резутьтат
THIS IS THE HEADING
Установка
:set textwidth=70 70
, определяет максимальную ширину всех абзацев в символов и если вы
70
, пишете строки длиннее чем символов Vim
,
, автоматически перенесет слово превышающее эту длину на следующую строку
,
:
Например возьмите такой текст
Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Step 1 which boils down to one thing - It's all in the mind. That's why it's so hard.
80.
,
70
Он был написан с длиной строки
Мы хотим переформатировать абзац заполнив максимально
:
колонок Давайте выполним команды
:set textwidth=70
gwap
:
Вторую команду нужно понимать как gw
('g'o)
'w'here I was говорит начать форматированиетекста и вернуться ap means 'a' 'p'aragraph
!
:
Ура Текст принимает такой вид
Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Step 1 which boils down to one thing
- It's all in the mind. That's why it's so hard.
Смотри
:help formatting и
:help formatoptions для детальной информации
,
Также аналогично команде
:center
, есть команды
:left и
:right для выравнивания текста по левому краю и по
правому краю соответственно
Поиск и замена
,
,
,
('search and replace')?
Мы рассмотрели как найти текст Ну а допустим мы хотим найти и заменить
Можно использовать команду
:s
,
:
Например вы имеете текст
Setp 4 is eventually what gets you moving, but Setps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Setp 1 which boils down to one thing - It's all in the mind. That's why it's so hard.
setp step.
:
Мы хотим заменить все орфографические ошибки на
Для этого выполним
:s/setp/step/g
:
Эту команду можно прочитать так
:s/pattern/replacement text/options
,
,
Мы уже видели что шаблон может быть гибким и мощным настолько насколько нам нужно Шаблон
, замены может иметь специальный синтаксис на основе шаблона поиска Например если мы хотим
,
:
заменить дваслова мы можем использовать
:s/\(bachchan\) \(amitabh\)/\2\1/g bachchan amitabh amitabh bachchan.
Эта командаконвертирует текст из в
,
,
Опциями можно определить как замена будет работать По умолчанию поиск и замена работают только на первых вхождениях поискового шаблона в строке Для распространения замены на все вхождения мы указываем опцию g,
('g'lobal).
,
которая означает глобально
Если мы хотим подтверждать каждое изменение мы указываем опцию c,
«
».
которая означает подтверждать каждую замену
Аббревиатуры
-
Иногда вам приходиться писать какой то текст снова и снова Почему бы не использовать короткие
? комбинации клавиш Они называются в Vim аббревиатурами
,
Highly Amazing Corporation Pvt. Ltd.,
:
Например если вы постоянно пишите текст вы можете сделать так
:iab hac Highly Amazing Corporation Pvt. Ltd.
, h, a, c, ,
!
Теперь когдавы пишете текст и введете автоматически подставится указанный выше текст
Запустите
:verbose abbreviate для просмотра списка текущих аббревиатур
Смотри
:help :ab и
:help :unab для получения подробной информации
Проверка орфографии
,
7
Важной особенностью добавленной в версии Vim, является проверка орфографии.
Она позволяет Vim
, искать орфографические ошибки в тексте чтобы вы ихисправляли
,
Точнее Vim
,
"
", будет искать слова которые присутствуют в списке хороших слов то есть в файле
,
, орфографии а после пометит флагами остальные слова как возможно ошибочные
:
Давайте откроем следующий текст
Setp 4 is eventually what gets you moving, but Setps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Setp 1 which boils down to one thing - It's all in the mind. That's why it's so hard.
:
Для включения проверки орфографии запустим
:setlocal spell spelllang=en_us
'en'
'English' 'us'
USA.
Где стандарт для и
стандарт для
Вы можете выбрать язык и локализацию в

, зависимости от текста Однако соответствующие файлы с орфографией должны быть установлены в
$VIMRUNTIME/spell/
, каталоге Если они не установлены Vim
, спросит нужно ли автоматически скачать файл орфографии с сайта Vim.
Vim
"Setp" должен показать красную волнистую линию под и аналогичными ошибками Цвет будет зависить от установленной цветовой темы
Нажмите
]s
'
', . ., для переходак следующему плохому слову те с ошибочной орфографией
Теперь нажмите z=,
чтобы спросить у Vim варианты правильных слов Вам будет показан список на выбор
,
, enter
Вы можете ввести номер слова в этом списке которое вы считаете правильным и нажать для замены
, enter слова выбранным либо просто нажать для отмены
('good')
,
Если вы хотите увидеть оценку для каждого слова насколько хорош выбор замены слова запустите
:set verbose=1
и затем запустите z=
,
"Setp"
"Step",
В нашем случае мы можем заменить первое вхождение на но в тексте это слово встречается
, неоднократно Было бы лучше если бы мы могли сделать эту замену во всем тексте Для этого мы можем запустить
:spellrepall
:
Рассмотрим текст
Swaroop is a name.
В этом случае Vim
'Swaroop'
("bad word").
, пометит как неправильное слово
Мы знаем что это имя и наша
, задача добавить это правильное слово в список правильных слов чтобы Vim помечал его постоянно Для этогомы можем выполнить zg и добавить слово в список
Для изучения работы с файлом орфографии вы можете запустить
:spellinfo
,
,
Я нахожу проверку орфографии полезной когда я могу включать её и выключать чтобы она не мешала vimrc
, нормальному редактированию Поэтому я добавляю следующие строки в мой файл после чего я могу
F4
:
использовать для переключения " Spell check function! ToggleSpell()
if !exists("b:spell")
setlocal spell spelllang=en_us let b:spell = 1
else setlocal nospell unlet b:spell endif endfunction nmap :call ToggleSpell()
imap :call ToggleSpell()a
-
,
Проверка орфографии это обширная тема и если вы интересуетесь реализацией проверки орфографии в
Vim,
,
,
,
и тем как вы можете добавить орфографию или слова в список для вашего языка пожалуйста смотрите
:help spell
Прямоугольное выделение
,
,
Когда мы редактируем табличные данные мы иногда хотим копировать лишь несколько столбцов текста а не несколько строк Для этого мы можем использовать режим прямоугольного выделения в Vim, нажав ctrl- v
:
Рассмотрим следующий простой текст
1. Concentrate
2. Understand
3. Think
4. Get Things Done
'C'
Поместите курсорна заглавную в первой строке
Нажмите ctrl-v
Нажмите
3j
3 для переходавниз на строки
Нажмите
$
для перемещения в право в конецстроки

Нажмите y
(yank) для копирования текста в регистр по умолчанию
Запустите
:new и нажмите p,
что бы вставить прямоугольноевыделение
:
Новый файл будет иметь следующеесодержание
Concentrate
Understand
Think
Get Things Done
Смотри
:help ctrl-v для получения детальной информации
Удаленное редактирование файлов
Используя Vim,
, ftp.
Вы можете редактировать файл удаленно через
Просто запустите команду vim ftp://ftp.foo.com/bar или запустите
:Nread ftp://ftp.foo.com/bar в Vim.
"netrw"
Для этого можно использовать встроенный плагин в Vim, используя который вы можете scp, http, webdav редактировать удаленно файл через и другие протоколы Смотрите
:help netrw-urls для подробной информации username password
/.netrc,
Vim
Вы можете прописать и
в вашем файле что бы мог автоматически логиниться за вас
Смотрите
:help netrw-start для получения подробной информации
Итоги
,
Vim.
Мы погрузились немного глубже в различные функции редактирования которые предоставляет
Это
,
,
- должно дать вам представление о широком спектре вещей которые вы можете сделать Опять же главное
,
,
,
, не вызубрить каждую функцию а понять что важно вам прямо сейчас и сделать это привычкой а затем
/
/
, изучать другие возможности параметры плагины по меренеобходимости "Editing Effectively"
Хорошей идеей будет просмотреть секцию из
:help user-manual и потом читать только
, разделы которые вы находитеинтересными

Vim :
(Multiplicity)
Множественность
Введение
,
В этой главе давайте посмотрим как Vim
, поможет вам работать с разными частями файла несколькими
('windows')
, различными окнами и различными закладками помогающими добиться параллельной работы
Это важная часть управления и редактирования файлов
Несколько разделов с использованием Складок (Folds)
,
,
«
"
Если вы редактируете большой документ не будет ли намного проще если вы сможете закрыть все
?
ненужные в данный момент разделы и сфокусироваться только на одном
,
"folding" Vim.
Это то что мы называем в
,
,
Давайте возьмем пример где ваш документ структурирован так что каждому уровню текста соответствует
,
:
отступ на один уровень к примеру следующий фрагмент текста
Book I
The Shadow of the Past
Three Rings for the Elven-kings under the sky,
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
Three is Company
The Road goes ever on and on
Down from the door where it began.
Now far ahead the Road has gone,
And I must follow, if I can,
Pursuing it with weary feet,
Until it joins some larger way,
Where many paths and errands meet.
And whither then? I cannot say.
:




Примечание Этот текст былвзят из
WikiQuote
После набора этого текста выполните
:set foldmethod=indent
,
, установите курсор на текст которому вы
, хотите задать отступ нажмите zc
, и смотрите как текст свернется Нажмите zo для открытия свернутого текста
,
Лично я предпочитаю использовать пробел для открытия и закрытия складок Чтобы это работало добавьте vimrc:
строку в ваш файл
:nnoremap za
,
,
,
, -
Основные команды которыми мы можем открывать и закрывать складки это соответственно zo и
zc
Вы можете использовать za
('a'lternate) для переключения между открытием и закрытием складки Вы можете
,
,
:
сделать это ещепроще используя пробел в нормальном режиме чтобы открыть и закрыть складку
-
(
,
,
Складки это сама по себе огромная тема с большим количеством способов складывания ручной маркер
)
, выражение и различными способами открытия и закрытия иерархии складок и так далее
Смотри
:help folding для подробной информации
Множество буферов (Buffers)
,
Предположим что вы хотите редактировать больше одногофайла одновременно в Vim,
?
что вам делать
,
Напомню что файлы загружаются в буфера в Vim. Vim также может загрузить несколько буферов
, одновременно Итак вы можете открыть несколько файлов одновременно и вы можете переключаться между ними
,
, part1.txt part2.txt:
Давайте предположим что вы имеете двафайла и
1   2   3   4   5   6


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал