3 июня 2009 г.

Vim


1) Пользоваться vi (хотя бы на уровне блокнота) над обязательно всем пользователям Linux(за исключением наверно лишь фанатов emacs): потому что это редактор который есть везде и устанавливается по умолчанию.
Других редакторов может например .....
не быть и возможности их поставить тоже - как например на модем каком-нить "D-Link"овском, или на железяке со встроенным Линукс (я встречал таких дивайсов с десяток - и везде был vi). Или на сервере без графики и минимальным набором софта (для безопасности).
Любителям пользоваться мышкой могу посоветовать графическую версию vi - gvim. - Хотя без мышки - зная vi, любой текст редактируется быстрее.

2) Для того чтобы им пользоваться на уровне блокнота, надо всего лишь знать следующие:
Открыть файл: vi /путь/к/файлу
Далее, у vi есть два основных режима: при включении попадаю в "командный", а текст правится в режиме "редактирования".
Переход из "ком." в "ред." - клавиша "Ins", обратно - "Esc".
В командном режиме: "u" - undo(отмена предыдущего действия), ":wq" - выход с сохранением, ":q!" - выход без сохранения.
Вот и все азы - зная их можно спокойно вносить изменения в конфигурационные файлы.

3) Можно удобно КопиПастить - для этого можно перейти в "визуальный" режим - нажав "v". Дальше выделятся нужный текст курсорными клавишами и нажимается "y" - чтобы скопировать, "d" - чтобы вырезать, и затем в нужном месте "p" - чтобы вставить.
Этих знания обычно хватает, чтобы пользоваться vi без всяких изысков.

А немного изысков - для рекламы:
0) В продолжение КопиПастенья: можно скопировать текст из другого файла следующим образом:
выполнить ":vsplit /", затем в появившемся окне найти нужный файл и открыть его. Далее с помощью "визуального режима" выделить нужный текст, закрыть окно - ":q". И вставить скопированный текст - "p".

1) можно результат внешних команд вставлять в текст - а не набирать много текста вручную.
Для этого: ":r! команда", например:
:r! cal
и получил в файле календарик за текущий месяц.
:r! echo /e/X/xo - где - это нажатие клавиши Tab - в итоге я вставил в текст имя файла /etc/X11/xorg.conf - набрав при этом не так уж много символов и не имея шанса опечататься.
Можно например вставить результат запроса к базе данных или ldap.

2) можно текст пропустить через внешнюю команду:
для этого ":1,$!команда"
Например:
:1,$!sort - отсортировать текст
:1,$! grep -v "^#" - удалить строки начинающиеся с символа "#"
Можно пропустить через внешнюю команду только выделенный фрагмент - для этого в "визуальном режиме" выделяем текст и нажимаем "!" дальше дописываем команду которую нужно выполнить.

3) можно просто выполнить внешнюю команду:
для этого ":!команда"
например я обычно в конфиг vi (это файл /etc/vimrc или в домашней папке .vimrc) добавляю в конец такую запись:
map :w:!aspell -c %
что означает следующее: при нажатии на клавишу F2 - файл сохраняется(":w" = ":w" - сохранить, "" - carrage return(Enter)), а затем запускается внешняя команда aspell(которая орфографию проверяет) с параметром "-с %" - % в vi заменяется на имя редактируемого файла.
map q :q
map w :w

и выходить из vi станет удобнее - просто клавишами w и q.
Программист Си'шный может например сделать чтобы редактируемый код скомпилировался и запустился полученный бинарник.
Веб-програмист - может например запустить утилиту tidy на редактируемый им html-текст, чтобы она праверила что все теги закрыты.
И тд и тп - команд в линуксе гораздо больше, чем я когда-либо узнаю и их все можно прицепить к vi, это касается и собственных скриптов - то есть "макрос на макросе и макросом погоняет".

4) Подсветка синтаксиса конфигурационных файлов:
Для этого в конфиге /etc/vimrc - должна быть раскомментирована строка:
syntax on

5) Утилита vimdiff(смесь vi и diff-показывает различия в файлах):
пример использования:
vimdiff /etc/passwd /etc/passwd.old

author: aonick
source: welinux.ru

Комментариев нет: