view mobile version net4me Enable JavaScript in your browser! Linux education center net4me.
 
net4me logo

tux

linux commands
shell script
protocol
ip, tcp, smtp, ntp, ftp
telnet terminal
java and javascript
ajax web technology
documentation
howto, man, info
cisco in network
linux server
linux in home
online utility
and more more more.
python development
туе4ьу дштгч

  Содержание подраздела:

VIM examples. Примеры и подсказки в работе с редактором vim

Так как сам работаю с текстом только в vim, то опыта набралось немало.
Вот только память иногда меня все-таки подводит. =)

Поэтому сам для себя решил сделать несколько подсказок.
Ну и заодно рассказать самое основное.
Вводная часть у нас короткая, потому что про начало vim итак уже много документации.
--------------------------------------------------

Основные действия в трех словах:

vim test.txt и нажимаем i - и просто пишем.
u - отмена (назад в history)
:u - тоже отмена. U - тоже. Этих отмен как грязи! потом почитаете в манах.
:redo - повторить (вперед в history) оно же Ctrl+r
:wq - Сохранить и выйти
:w - просто сохранить данный файл.
:w ПУТЬ/ИМЯ - сохранить копию как.
:q! - не сохранять и выйти.
[[ - вверх файла
]] - вниз файла
Ну и кнопка Esc (выход из режима) у меня так же стерта, как и TAB =))
Для тех, кто не понял, проще так:
Esc i - пишем
Esc v - выделяем
Esc : - командуем
Esc / - ищем
Для подсказок по командам есть кнопка TAB. Т.е. :TAB и дальше TAB TAB TAB до просветления =)))
Если сказано, что ошибка в строке с таким-то номером, то: :12345 - переходим на строку с номером 12345
:set number - показать номера строк
:set nonumber - скрыть нумерацию строк
Ну и на :set TAB тоже много что покажет.
--------------------------------------------------

Выделение текста:

Ну тут всё понятно.
v и влево или вправо стрелками.
или Shift+v вся строка целиком.
или Ctrl+v прямоугольник. часть текста.
--------------------------------------------------

Копирование и вставка текста:

Ну нажали мы v и выделили кусок. И что дальше?
y - скопировать
Shift+p - вставить.
ну и просто p - тоже вставить. Только мне P почему-то удобнее.
d - удалить (т.е. вырезать)
--------------------------------------------------

Поиск и замена. Перейти на строку:

/ФРАЗА - поиск фразы во всем документе.
n - следующее найденное (вниз) N - предыдущее (вверх)
Замена во всем файле:
:% s /ЧТО_МЕНЯЕМ/НА_ЧТО_МЕНЯЕМ/g
в данном примере, % значит что весь файл. g значит что заменить надо не только первое совпадение, а все совпадения.
Если надо заменить не всё, а только часть текста, то выделяем кусок как показано выше и жмем ":" после этого включается командный режим и нам уже предлагают формулу для выделенного куска :'<,'> нам остается только дописать, что мы хотим с этим куском сделать.
А мы хотели поменять нецензурное слово на хорошее =)
:'<,'>s/windows/linux/g
* Дополнение: в следующий раз после того как поставили двоеточие, мы просто нажмем кнопку вверх и найдем нашу команду.
Правила замены такие же как и в любых регекспах.
Выделил я несколько строк, нажал двоеточие и написал s /$/<br>/ и конец каждой строки превратился в <br>.
^ - начало строки
$ - конец строки и так далее. (тут не статья про регулярные выражения.)
--------------------------------------------------

Окна и перемещение между окнами:

:vne ИМЯ_ФАЙЛА - поделить вертикально окно и открыть файл ИМЯ_ФАЙЛА во второй половине.
:new ИМЯ_ФАЙЛА - то же самое, но горизонтально.
:vs - один и тот же файл на 2 окна вертикально.
:sp - то же самое, но горизонтально.
перемещение между окнами vim - Ctrl+w Ctrl+w
или Ctrl+w и стрелка на какое окно перемещаться. (про hjkl я тут не говорю.)
--------------------------------------------------

Вводная часть на этом закончена. Дальше пойдут тонкости:

--------------------------------------------------

Автоматическое дополнение текста:

Вот это очень удобно.
Прям в режиме INSERT начинаем писать какое-то слово и нажимаем Ctrl+p (то же самое делает и Ctrl+n)
В итоге получаем список слов в этом документе начинающихся также.
Выбираем какое нужно и продолжаем работать.
--------------------------------------------------

Смена регистра выделеных символов:

v дальше выделяем кусок.
Потом gu если надо нижний регистр, или gU если надо верхний регистр.
--------------------------------------------------

Перемещение по тексту:

Стрелки. Да. Кнопки со стрелками. Их я чуствую (еще с Агата 7), а hjkl - нет.
Бывает очень удобно, если скобки в разных концах большого файла.
% - перейти к парной скобке.
--------------------------------------------------

#======================================
#
# Edit by Ben-Ja http://www.net4me.net
#    On Tue 15 Dec 2009 04:19:49 PM MSK
#
#======================================

Используем внешние команды при редактировании файла:

И вот мне захотелось узнать, сколько всего строк в файле. И я почему-то забыл посмотреть на статусную строку.
:!wc -l %
Что я сделал? Прально! Запустил внешнюю команду по отношению к данному файлу.
А вот еще интересный пример удобства:
Мне нужен вертикальный столбец цифр (массив делаю). И что, я буду сидеть и больше 100 раз вводить цифры?!
Хрена там! Ставлю курсор туда, куда надо вставить столбец с цифрами и даю команду:
:read !for x in `seq 0 10`; do echo $x; done
Вуаля! от 0 до 10 аккуратный столбец. И есть даже время написать об этом сюда. =)
Можно даже повесить это действие на кнопку.


Продолжение следует. =)

:wq


home back top
При копировании материалов нашего портала, сылка на net4me обязательна.
Рейтинг@Mail.ru   Valid HTML 4.01 Transitional     Яндекс цитирования   best billing

 



...

net4me snowflake
rfc2368
 
net4me portal This page last modified: Saturday, October 1, 2011   be in net. net4me

portal net4me linux education center