Редактор vim

Автор orlyanuch, 04 апреля 2011, 17:49:20

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

orlyanuch

Когда я впервые, без предварительной подготовки, открыл vi, то был неприятно (мягко говоря) удивлён его "неадекватным" реагированием на ввод с клавиатуры.
Привычные по gedit-у сочетания клавиш совсем не работали, да и просто ввести текст было невозможно. Что-то пиликало, внизу появлялся какой-то текст, исчезал... Даже выйти из программы было непонятно как.
Чертыхнувшись и убив из соседнего окна процесс, я постарался позабыть об этом редакторе, посчитав его бредом небритых красноглазых сисадминов.
Теперь же это у меня основной редактор для всех случаев ввода текста. Редактирование командной строки тоже настроено в стиле vi. Переменной EDITOR (редактор, вызываемый для нужд служебных программ, к примеру, less) тоже присвоено значение vi.
Если у вас случилась описанная выше ситуация, или вы просто ещё не определились с выбором средства для редактирования текста, то читайте далее.
Всё очень просто, если знать, что нажимать.
Я не буду описывать здесь сочетания клавиш, во первых, в интернете полно подобной информации, во-вторых, их не просто много, а чрезвычайно много, а в-третьих и в самых главных, в vi есть встроенный, простой и даже достаточно интересный учебник на русском языке. Замечу, не "сухой" man vi, не :help на английском, а именно учебник для начинающих.

Если вы заинтересовальсь, и решили попробовать, то вперёд!

Если команды ниже начинаются с #, то они выполняются с привилегиями root, начинающиеся с $ выполняются обычным пользователем.
Изначально в debian присутствует только vi, который не очень подходит для первоначального ознакомления. Поэтому первым делом установим vim, который имеет множество дополнительных способностей, делающих работу с ним просто интересной, и, самое главное, содержит этот учебник.
# apt-get install vimПроследите, чтобы установились предлагаемые дополнительные пакеты, особенно vim-runtime. Без него будет совсем скучно.
Теперь можно запустить учебник:
$ vimtutorОт себя добавлю: в уроке 8 описывается создание стартового скрипта для vim. Для совсем неопытного пользователя, на мой взгляд, немного заумно (я в своё время совсем не сразу въехал). Проще сразу сделать:
$ cp /usr/share/vim/vim72/vimrc_example.vim ~/.vimrcНа прочтение с выполнением примеров у меня ушло меньше часа. После изучения его вы сможете свободно открывать, редактировать и сохранять текст, используя только буквенно-цифровую часть клавиатуры. Клавиши типа Home, End, Page up, стрелки и т.д. уже не нужны, а про мышь можно совсем забыть. Даже клавиши Backspase и Esc свободно заменят более удобные комбинации Ctrl-H и Ctrl-[ соответственно. Если вы владеете методом слепого набора текста, то быстро оцените всё удобство редактора.
В man vim описаны опции запуска редактора, а в самом vim есть подробная встроенная справка, которая вызывается командой :help.
К сожалению, изначально она на английском языке, но это поправимо. Скачиваем файл ruvim-0.5-utf8.zip. Эта версия перевода довольно старая, 2004 года и пользоваться ею нужно помня об этом, но для углублённого изучения редактора вполне пригодна.
Удалим из архива файл lang/ru/LC_MESSAGES/vim.mo, т.к. он уже присутствует в системе (заодно удалим RuVim-HISTORY.txt, к чему он нам в служебной директории?):
$ zip -d ruvim-0.5-utf8.zip lang/ru/LC_MESSAGES/vim.mo RuVim-HISTORY.txtТеперь топаем в /usr/share/vim/vim72 и распаковываем туда наш файл (подразумевается, что ruvim сохранили в домашней директории):
# cd /usr/share/vim/vim72/
# unzip ~/ruvim-0.5-utf8.zip
Теперь зайдите в vim и наберите :help. Основная часть справки будет на русском. Справка состоит из двух частей: руководство пользователя и справочник по vim. Руководство пользователя можно читать, как книгу, и если у вас хватит терпения дочитать до конца, выполняя по ходу примеры... У меня хватило. Теперь мне никто не докажет, что есть редактор более удобный.

Можно сделать, чтобы консольные программы, использующие внешний редактор, вызывали vi. Откройте ~/.bashrc:
$ vi ~/.bashrcДобавьте в любом месте новую строку:
Цитироватьexport EDITOR=vi
К примеру, когда вы просматриваете текст с помощью less, при нажатии на клавишу v будет вызван vim и текст можно редактировать.

Теперь вы наверняка захотите, чтобы и редактирование командной строки было в стиле vi. Сделать это совсем просто. В файле ~/.bashrc добавьте в любом месте новую строку:
Цитироватьset -o vi
Более подробно про сочетания клавиш в стиле vi я писал здесь.

Можно также установить графическую версию vim:
# apt-get install gvimУ меня он появился в Приложения - Стандартные.

Итак, всё необходимое установлено, основные команды изучены: можно заняться повышением удобства в работе. Первым делом сделаем так, чтобы при переходе из режима ввода текста в командный режим продолжали работать основные командные клавиши при русской раскладке клавиатуры. Для этого в ~/.vimrc добавим следующие строки:
Цитировать" При включенной русской раскладке продолжают работать командные клавиши
map ё `
map й q
map ц w
map у e
map к r
map е t
map н y
map г u
map ш i
map щ o
map з p
map х [
map ъ ]
map ф a
map ы s
map в d
map а f
map п g
map р h
map о j
map л k
map д l
map ж ;
map э '
map я z
map ч x
map с c
map м v
map и b
map т n
map ь m
map б ,
map ю .
"map . /

map Ё ~
map Й Q
map Ц W
map У E
map К R
map Е T
map Н Y
map Г U
map Ш I
map Щ O
map З P
map Х {
map Ъ }
map Ф A
map Ы S
map В D
map А F
map П G
map Р H
map О J
map Л K
map Д L
map Ж :
map Э "
map Я Z
map Ч X
map С C
map М V
map И B
map Т N
map Ь M
map Б <
map Ю >
"map , ?
Теперь при следующем входе в vim если включена русская раскладка будут продолжать работать основные командные клавиши.
Эти команды создают привязки русских клавиш к английским (подробнее про map см. :help 40.1 и :help map).
Обратите внимание, что у меня закомментированы строки 'map . /' и 'map , ?'. Дело в том, что я часто пользуюсь командами '.' и ',' (первая - повтор последней выполненной операции, а вторая - поиск по строке в обратном направлении), а данные привязки меняли их на '/' и '?', что уже совсем другие команды. Вы можете поступить так, как вам будет удобнее.
Edimus, ut vivamus; nоn vivimus, ut edamus.

kstati

ЦитироватьТеперь мне никто не докажет, что есть редактор более удобный.
Пусть будет так, но, всё же emacs. примерчик

Squeezer

Перевод на русский язык книги «Просто о Vim» («A Byte of Vim»). Может кому-то окажется полезной.
Книга в формате ODT (1163 Кбайт)
Книга в формате PDF (1204 Кбайт)

Metrix

Надо же я уже в инглише дочитал почти, блин придется заново по-русски читать ;D
Юзербар в отпуске

hameleonds

Привет, подскажите)

Наплодил несколько файлов vimrc по директориям.

/vimrc
/etc/vim/vimrc
/root/.vimrc
/usr/share/vim/vimrc

Как определить, какой из них используется в открытом vim?

sunny_side

strace vim, а дальше вводим :q и смотрим, что vim открывает.

скорее всего он должен открывать вначале /usr/share/vim/vimrc потом ~/.vimrc

hameleonds

sunny_side,

Цитата: sunny_side от 26 января 2014, 14:47:07strace vim, а дальше вводим :q и смотрим, что vim открывает


Где необходимо ввести?
strace vim

В терминале такой команды не найдено  :(

sunny_side

#7
Цитата: hameleonds от 26 января 2014, 23:09:36В терминале такой команды не найдено 

тогда вначале устанавливаем strace, для этого в терминале выполним команду - sudo aptitude install strace
strace - трассировщик системных вызовов.

если при выполнении команды видите сообщение о том, что такой команды нет, нужно найти в каком пакете она поставляется. это можно сделать c помощью команд aptitude search [command] или apt-file search [command] или dpkg -S [command]

Цитата: hameleonds от 26 января 2014, 23:09:36Где необходимо ввести? 
после того как vim запуститься под strace он будет постоянно выводить трассировочную информацию, что мешает. посему в терминале в котором вы ввели strace vim вводите :q. эта команда закроет vim и вы сможете найти, какие файлы конфигурации использует vim. насколько я помню vim можно указать какой файл конфигурации использовать


hameleonds