3/13/2012

Как редактировать в Vim без порчи и бибиканья

Вступление

"Вим умеет только бибикать и портить текст!", - так обычно обороняются адепты секты Емакс во время очередных священных битв между поклонниками этих двух текстовых редакторов. Попробуем же освоить Вим так, что бы избежать таких приколов.

 

Терминология

Для начала давайте разберёмся с терминами, которые обычно используются при описании работы в Виме.
 
Экран
Это окно программы Vim

 
Окно
Представление (область экрана) буфера. Экран может включать одно или несколько окон, разделённых строкой статуса. Внизу экрана размещается командная строка Вима.
      +-------------------------------------+
экран | окно 1           | окно 2           |
      |                  |                  |
      |                  |                  |
      |= строка статуса =|= строка статуса =|
      | окно 3                              |
      |                                     |
      |                                     |
      |==== строка статуса =================|
      | командная строка                    |
      +-------------------------------------+
 
Буфер
Временное хранилище текста.

 
Именованный регистр
Именованное хранилище текста для множественных вставок.

 

Войти и выйти

Многие виммеры начинали своё знакомство с этим редактором с конфуза, а именно не смогли попросту выйти из программы! Давайте начнём с того, что раз и на всегда избавим пользователя от необходимости закрывать окно терминала (а так делал и ваш покорный слуга) с целью выхода из этого замечательного редактора :)

Чтобы начать редактировать произвольный файл и таким образом начать пользоваться Вимом достаточно набрать в консоли:
vim ~/foobar.txt
Отлично, первый шаг сделан - по ошибке или целенаправленно - это другой вопрос! Чтобы выйти из Вима без сохранения внесённых изменений достаточно набрать:
<Esc>:q[uit]<Enter>
В квадратные скобки заключена необязательная часть команды, которая дополнится, как традиционно в UNIX, по <Tab>. <Esc> же переведёт редактор в нормальный режим,  если вы ещё не в нём (о режимах в Виме чуть позже). Чтобы уж совсем добить тему выхода —  есть ещё и клавиатурная комбинация (одна из "миллиона" в Виме): ZQ - выход без сохранения изменений.

 

Режимы

Вим, как и его прародитель Vi, имеет модальный интерфейс. Это означает, что одни и те же клавиши в разных режимах работы выполняют разные действия. В Виме представлены следующие основные режимы:


Нормальный - главный режим, в котором вам придется работать. Когда вы запустили редактор, вы находитесь именно в этом режиме. Нажатие клавиш в нём воспринимается как команды. h, j, k, l - переместят курсор куда вам необходимо, x удалит символ под курсором, dd - целую строку и так далее. Вернуться в нормальный режим из любого другого можно всегда по нажатию Esc. Вообще использование Esc, ровно как и клавиш перемещения - это скорее историческое наследие.
Клавиатура терминала ADM-3A, на которой был написан Vi
Для тех же, кто всё-таки не считает Esc - самым удобным способом вернуться в нормальный режим Вима, есть целые подборки альтернатив. Я для себя выбрал комбинацию Ctrl-[.


Режим вставки - это тот самый режим, в котором вы и будете вводить текст. В этот режим можно перейти из нормального просто нажав i, что означет начать режим ввода текста перед курсором. На самом деле существует ещё наверно с дюжину клавиатурных комбинаций, которые вас переключат в этот режим.


Режим командной строки - перейти в него можно, набрав : в нормальном режиме, набрав далее необходимую команду. Это своего рода управляющий режим. С помощью его команд можно открыть файл на редактирование :edit ~/foobar.txt , сохранить правки и выйти :wq и многое другое. Так же частным его использованием является процедура поиска или замены текста.
По совету анонимного читателя упоминаю о так называемых "принудительных" команд:
  • :q! - выход БЕЗ сохнанения изменений
  • :w! - принудительно записать изменения
  • :e! - переоткрыть файл, не сохраняя изменений
  • :e! fname - открыть другой, не сохраняя изменений


Визуальный режим позволяет делать тоже самое, что и в нормальной, но с визуально выделенными блоками текста. Это позволяет не запоминать, сколько символов необходимо скопировать или строк удалить. Например, устанавливаем в нормальном режиме курсор на начала текстового блока, нажимаем v и выделяем необходимый кусок текста. Теперь его можно, например, скопировать y.
На самом деле в Виме есть ещё 2 режима: "Select mode" и "Ex mode", но они обычно редко используются и их описание выходит за формат данного поста.
Help: :help vim-modes

 

Вкладки

Начиная, кажется, с 7-ой версии в Виме появились наконец-то вкладки (или табы). С одной стороны, конечно хватало и буферов, а для удобной навигации по ним можно использовать bufexplorer.zip : Buffer Explorer / Browser. Но, с другой стороны, во "взрослых" IDE табы к тому времени стали уже стандартом и все поняли, что это удобно. В Виме вкладка по сути контейнер для окна/окон. Что бы открыть файлы для редактирования, каждый в своей вкладке, набираем в консоли:
vim -p file1.txt file2.txt
Перемещаться между вкладками можно как привычным сочетанием Ctrl-PageUp / PageDown, так и менее традиционными gt и gT в нормальном режиме. Иногда так действительно быстрее! :)

К сожалению, нет дефолтной комбинации для открытия новой вкладки, а привычные Ctrl-t заняты другими функциями (переход на один шаг назад в истории работы с тегами) :( Но я пришёл к тому, что можно пожертвовать этим и всё-таки переназначить эту клавиатурную комбинацию на открытие нового таба:
" C-T - new tab
call SMap("<C-t>", ":tabnew<cr>")
Функция SMap в этом куске конфига - это просто более удобный самописный способ назначения действий для клавиатурных комбинаций.
Как обычно много полезного можно почерпнуть из встроенной помощи: см. :help tabpage.

 

 Поиск и замена

Что бы найти какую-либо строку в открытом файле достаточно в нормальном режиме набрать /somestring что бы искать с начала файла, либо ?somestring - с конца. n / N - переместит курсор к следующему вхождению строки. [I - недавнее открытие :) Позволяет быстро просмотреть строки, в которых содержится искомое слово. Вместо того, что бы набирать запрос поиска, можно нажать * / # и Вим переместит вас на место первого вхождения слова под курсором аналогично "старшим" командам.

С заменой всё тоже достаточно просто. Следующая команда заменит все вхождения строки "foo" на "bar":
:%s/foo/bar/gc
Разберём этот пример по частям:
  • % - диапазон по всему файлу
  • :s - сокращённая запись команды :substitute
  • "foo" - что заменяем
  • "bar" - на что заменяем
  • g - это флаг, указывающий на то, что заменить необходимо все вхождения для каждой строки текста
  • c - это флаг, указывающий на то, что перед заменой очередного вхождения строки необходимо спросить разрешение у пользователя

 

Метки

В Виме, как и в других продвинутых текстовых редакторах, есть возможность устанавливать закладки (в Виме они называются метками) в произвольных местах редактируемого документа. Например, можно поставить закладку на месте определения функции, что бы при необходимости быстро его найти. Суть такая же как и с книжными закладками. Что бы установить метку в месте расположения курсора достаточно набрать в нормальном режиме:
m{a-zA-Z}
{a-zA-Z} - это одна буква английского алфавита в соответствующем регистре, который кстати имеет значение! Метка, обозначенная буквой в нижнем регистре, существует в рамках текущего файла, в то время как большая буква позволяет существовать метке в рамках всех загруженных в Вим файлов.

Для того, что бы перейти к выставленной ранее метке достаточно набрать ' и соответствующую ей букву. Конечно запомнить все выставленные метки сложно, да и наверное не стоит пытаться. Список меток всегда можно посмотреть набрав в командном режиме:
:marks
Для более удобной навигации по выставленным метках можно использовать и одно из расширений, например Marks Browser : A graphical marks browser. Хотя и этот плагин не обновлялся аж с 2006 года, он вполне справляется с возложенной на него обязанностью!
Marks Browser - удобная навигация по меткам
Help: :help mark-motions

 

 

 

 

 Аббревиатуры

Хочется немного упомянуть и функциональность аббревиатур в Виме. Они дают возможность быстро набирать часто употребляемые при написании длинные строки, используя их сокращённое написание. Например, когда набираете в тексте слово МГУ, Вим заменяет его на Московский государственный университет. Задать аббревиатуру для этого можно так:
:iabbrev МГУ Московский государственный университет
В аббревиатуры можно упаковывать целые конструкции, превращая их в мини-шаблоны:
iabbrev dbg echo '<pre>';<CR>var_dump(|);<CR>echo '</pre>';<CR>
В тоже время есть более удобные механизмы шаблонов для Вима, но они предоставляются уже плагинами. Например, snippetsEmu : An attempt to emulate TextMate's snippet expansion, для которого есть целые пачки готовых шаблонов для популярных языков программирования и разметки.
Help: :help abbreviations

 

 ~/.vimrc

~/.vimrc обычно наряду с ~/.bashrc и ~/.screenrc входит в состав т.н. "dotfiles", которыми пользователи любят делиться и разбирать :) ~/.vimrc - это файл настроек Вима. Сюда можно поместить, например, настройку, указывающую включать по умолчанию подсветку синтаксиса:
syntax on
или разрешать смену текущего буфера без необходимости сохранить файл:
set hidden
или расставить все точки над и при работе с отступами:
" Expand tab to spaces ?
set expandtab

" Default tab size
set shiftwidth=4
set softtabstop=4
set tabstop=4
или отключить то самое бибиканье!
" Turn off any bells
set novisualbell
set t_vb=

 

 Расширения

Пользователи Mozilla Firefox оценят богатство расширений для Вима, их уж почти 4000! Причем найти среди них можно практически всё что угодно: от игр до вполне серъёзных вещей вроде плагинов для удобного ведения проектов.

Лучшая пятёрка расширений по загрузкам на vim.org:

Расширение Описание
taglist.vim Браузер исходного кода
The NERD tree Навигатор по файловой системе
bufexplorer.zip Удобная навигация по буферам
minibufexpl.vim Ещё одно расширение, упрощающее навигацию по буферам
Color Sampler Pack Отличная подборка цветовых схем


Небольшая подборка расширений от читателей блога:

Расширение Пользователь
The NERD Commenter : A plugin that allows for easy commenting of code for many filetypes. FancyWriter
ctrlp.vim : Fuzzy file, buffer, MRU, and tag finder with regexp support. Roman V. Babenko
tComment : An extensible & universal comment plugin that also handles embedded filetypes Roman V. Babenko
rails.vim : Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more Roman V. Babenko
pathogen dimas

 

:help me

Вим имеет мощную встроенную систему справки, которая позволяет найти ответ на практически любой вопрос, касающийся работы в этом текстовом редакторе. Например, вы забыли как работать с именноваными регистрами. Набираем в командном строке:
:help registers
и читаем подробное описание того, какие бывают регистры и как их можно использовать. Если же вы решили изучить всю функциональность Вима, то можно не задавать запрос в команде, а просто просмотреть содержание справочника.
Для удобства читателя в этом посте используются специальные ссылки на онлайн версию этого справочника.

 

Заключение

Надеюсь, что этот небольшое введение в мир Vim, поможет вам при следующем открытии этого редактора чувствовать себя в нём более уверенно. Ну и конечно Вим при этом станет для вас мощным подспорьем при редактировании не только конфигов, но вполне полноценных текстов и исходников. Без бибикания и порчи текста ;)
Pento http://www.allaboutvim.ru/

 

P.S.

Этот пост был написан тоже в Виме!


P.P.S.

Дальнейшему освоению Vim может помочь такая шпаргалка:


Добавил ведущий блога virens, который благодарит Анонимуса, нашедшего это изображение.

40 комментариев:

  1. Ещё не перечислено хорошее расширение - nerdcommenter

    ОтветитьУдалить
  2. FancyWriter, согласен, что расширение хорошее, и даже сам его использую :) Но всё же в рамках статьи не объять всего множества расширений для Вима.

    ОтветитьУдалить
  3. Лично для меня самыми ценными расширениями являються: tcomment, ctrlp и rails :-)
    Дерево проекта никогда не использовал и считаю его нефункциональным ибо сторонник "контекстной навигации".

    ОтветитьУдалить
  4. главное расширение для vim - это pathogen :)

    ОтветитьУдалить
  5. ну и добавлю что ли свой конфиг и скрипт для обновления - https://github.com/dimasg/vim

    ОтветитьУдалить
  6. Знатный пост, спасибо, Pento!

    Реквестирую добавить в пост в раздел "Расширения" оные присоветованные комментаторами и своими любимыми. Я понимаю, что их много, но хотя бы пяток-десяток. Посту будет лучше.

    Если есть другие расширения, достойные упоминания - оставляйте в комментариях.

    ОтветитьУдалить
  7. >нажимаем v и выделяем необходимый кусок текста

    Удобно иногда нажимать shift+v и ctrl+v.

    >набрать /somestring что бы искать с начала файла, либо ?somestring - с конца

    Верно, если вы находитесь в начале файла. А вообще / - поиск вперед, а ? - поиск назад.

    ОтветитьУдалить
  8. Хм... Честно пытался использовать Vim в течение пары месяцев, но так и не переварил идею с использованием режимов (или, как Вы изволили выразиться, идею "модального интерфейса"). Сейчас уже год как использую емакс. Имхо - на вкус и цвет товарищей нет.

    О статье судить не берусь. Описаны только самые азы, которые успешно осваиваются при помощи всем известного vimtutor.

    Товарищ virens, когда я был совсем начинающим линуксоидом, Ваш блог мне сильно помогал - но сейчас многие статьи устарели, ибо писались еще для Edge и требуют переработки, а новые описывают материал очень поверхностно.

    Вот например, если говорить о Вим, то лично мне куда интереснее было бы почитать краткие описания возможностей расширений/модулей. Вот например, я слышал, что в Вим есть аналог ecb. Хотелось бы узнать достоинства и недостатки. Также было бы интересно, как Вим работает с LaTeX и Maxima.

    Быть может, есть смысл обратить внимание на эти вопросы?

    ОтветитьУдалить
  9. @Pento
    Спасибо за пост про vim! Давно уже им пользуюсь, чудесная вещица (а с Вашей конфигурацией ещё лучше).
    По поводу поста есть лишь одно замечание: использование тега H1 внутри поста не есть хорошо. Во-первых, подзаголовки статьи больше заголовка самой статьи (по крайней мере в моём огнелисе). Во-вторых, поисковые роботы не любят этого, так как им нравится, когда H1 - это название блога; H2 - название поста; H3, H4, H5, H6 - подзаголовки внутри поста. 13(!) заголовков H1 могут сбить поискового робота с толку.

    @virens
    Багрепорт: очередного приглашённого автора опять нет на странице экипажа.

    ОтветитьУдалить
  10. Я подозреваю, что современная критика vim'а справедливо может иметь основания для пользователя только через отсутствие "правильного" GUI к этому редактору. А вот что не нравится админам, сидящим в консольных скринах -- ума не приложу. Как joe или nano могут быть альтернативой vi/vim…

    ОтветитьУдалить
  11. Я бы сказал, что бибикать и портить текст умеет vi. Vim, по сравнению с ним, весьма дружелюбен :)

    ОтветитьУдалить
  12. Roman V. Babenko, интересные расширения...надо будет попробовать их использовать.

    dimas, давно хочу поразбираться c pathogen :) но количество расширений, которые я постоянно использую минимально. И таким образом необходимости в более высокоуровневом управлении ими нет.

    lollo, про shift-v не знал, спасибо :)

    Дмитрий, спасибо за комментарий - я старался, что бы это было не повторение vimtutor, при всей простоте и удобстве последнего. Про LaTeX http://www.allaboutvim.ru/2007/10/latex-vim-vim-latex.html


    Vlsu, пожалуйста :) Заголовки сейчас поправлю, а вообще это последствия конвертации из ReST формата.

    ОтветитьУдалить
  13. virens, добавил подборку расширений в пост :)

    ОтветитьУдалить
  14. @Дмитрий комментирует...
    Описаны только самые азы, которые успешно осваиваются при помощи всем известного vimtutor
    На самом деле, вимтутор это такой курс молодого бойца, и многое из описанного здесь в вимтуторе нет.

    Товарищ virens, когда я был совсем начинающим линуксоидом, Ваш блог мне сильно помогал - но сейчас многие статьи устарели
    Дмитрий, всё очень просто: вы тогда были начинающим, и поэтому статьи были вам в масть. Собственно, я и не пытаюсь писать здесь какие-либо широкомасштабные исследования Дебиана.

    Я просто пользователь Debian, который ведёт свой личный блог. Вот и всё, ничего особо выдающегося. Здесь заметки, которые помогают работать прежде всего мне, и, возможно, ещё кому-нибудь.

    писались еще для Edge и требуют переработки
    На блоге более 300 постов, и перерабатывать их все - выше моих сил. Я инженер-исследователь на полную ставку и просто физически не смогу это сделать. Тем не менее, часть постов (например, недавно о proc) исправляется и расширяется.

    а новые описывают материал очень поверхностно.
    Не могу согласиться. Конечно, пост на пост не приходится, но например о doxygen было написано довольно подробно.

    Опять-таки, это делёж личным скромным пользовательским опытом, а не попытка экспертного исследования. Моя область интересов лежит несколько в другой плоскости (адаптивная оптика).

    Вот например, если говорить о Вим, то лично мне куда интереснее было бы почитать краткие описания возможностей расширений/модулей.
    Это интересно. Если у тов.Pento такой материал есть, возможно, он через некоторое время согласится его опубиковать где-нибудь.


    @Vlsu комментирует...
    По поводу поста есть лишь одно замечание: использование тега H1 внутри поста не есть хорошо.
    Ха, а я его и не использую. В моих постах размеры шрифтов прибиты гвоздями - размерами шрифта. Это моветон, разумеется, но я ленив до крайности.

    Багрепорт: очередного приглашённого автора опять нет на странице экипажа.
    Это потому, что я сейчас в Тайланде на конференции, и пишу с домофон^W доступ в интернет спорадический. Но таки ухитрился добавить.


    @Анонимный комментирует...
    Я бы сказал, что бибикать и портить текст умеет vi. Vim, по сравнению с ним, весьма дружелюбен
    Не знаю, кто как, а я для vi не созрел. Для vim пожалуй да, но vi это для каких-то совсем суровых сибирских мужЫков ;-)

    @Pento комментирует...
    dimas, давно хочу поразбираться c pathogen :)
    Пенто, а как насчёт забабахать пост с описанием используемых расширений? Там выше Дмитрий выдал идею.

    virens, добавил подборку расширений в пост :)
    И ведь лучше стало посту :-)

    Если есть ещё замечания, пожелания и идеи - выдавайте в комментарии, пока Пенто далеко не убежал :-)

    ОтветитьУдалить
  15. Ощущение, что статья для новичков.

    ОтветитьУдалить
  16. А как понимать слово бибикиния в заглавии?

    ОтветитьУдалить
  17. @Ogost комментирует...
    Ощущение, что статья для новичков.
    Это правильное ощущение - именно так и есть.

    @Анонимный комментирует...
    А как понимать слово бибикиния в заглавии?
    У вима есть свойство пищать, если пользователь пытается вводить текст не в том режиме (не в режиме правки). Это конфузит многих, откуда и появилось это выражение :-)

    Кстати, о некоторых расширениях я не знал, так что сам почерпнул для себя кое-что.

    ОтветитьУдалить
  18. Перечитайте статью, там в одном месте то ли "его" два раза подряд, то ли "он"..

    ОтветитьУдалить
  19. По поводу "бибикинии" я интересовался в смысле правописания.

    ОтветитьУдалить
  20. Анонимный, спасибо! Всё исправил :)

    ОтветитьУдалить
  21. @Pento комментирует...
    Анонимный, спасибо! Всё исправил :)
    Вот она, сила Анонимусова!

    Да, кстати, там выше интересовались насчёт возможности поста по плагинам. Это была бы интересная затея.

    ОтветитьУдалить
  22. "Тем не менее, часть постов (например, недавно о proc) исправляется и расширяется."
    На слове "proc" неправильная гиперссылка. Исправьте, пожалуйста.

    ОтветитьУдалить
  23. @Анонимный комментирует...
    На слове "proc" неправильная гиперссылка. Исправьте, пожалуйста.
    Ой, прошу пардону - ссылка была на пост Два слова о proc, который я переделал.

    Увы, но ни я, ни авторы не могут править комментарии в Блоггере. Только стереть и написать новый.

    ОтветитьУдалить
  24. Есть такая штука, которая проще и удобнее, чем pathogen: https://github.com/gmarik/vundle

    Если будет пост про плагины, могу написать о ней пару абзацев. Она умеет работать с плагинами, практически как с пакетами репозитория.

    ОтветитьУдалить
  25. Спасибо за статью! Только начал осваивать его, правда пока под вендой :-)

    ОтветитьУдалить
  26. Как после перехода в "Режим вставки" сразу писать в конце слова, а не перед последней буквой так происходит когда нажимаю i ?

    ОтветитьУдалить
  27. Как после перехода в "Режим вставки" сразу писать в конце слова
    нажать a

    ОтветитьУдалить
  28. По моему опыту, дальнейшему освоению нормального режима здорово помогает graphical cheat sheet, который можно найти, к примеру, здесь

    ОтветитьУдалить
  29. @triklozoid комментирует...
    Если будет пост про плагины, могу написать о ней пару абзацев.
    Есть ещё более революционное предложение - можно написать про плагины целый пост. Их тут уже накидали в комментариях, так что можно это всё сделать в виде отдельного поста.


    @Бетономешатель комментирует...
    Спасибо за статью! Только начал осваивать его, правда пока под вендой
    Там должно быть всё тоже самое. Так что поставя Линукс, будете уже в знакомой среде. Текстовой, во всяком случае.


    @Анонимный комментирует...
    По моему опыту, дальнейшему освоению нормального режима здорово помогает graphical cheat sheet, который можно найти, к примеру, здесь
    Анонимус! Ты могуч! Ты гоняешь стаи туч! :-)
    Потрясающая картинка - ей в посте самое место. Отдублировал в пост. Огромное спасибо!

    ОтветитьУдалить
  30. Добрый день, Virens.
    Давненько не читал, зашёл - а тут про Vim :) Спасибо.
    Немного смущает меня часть про замену текста.
    :s/foo/bar/gc
    Может настройки у тебя какие другие, но, кажется, по умолчанию эта команда заменит все foo на bar только в текущей строке - "g" - это глобальная замена в указанном диапазоне, а он здесь не указан - т.е. vi ограничится текущей строкой. Чтобы расширить диапазон применения на весь текст нужно добавить "%"
    :%s/foo/bar/gc

    ОтветитьУдалить
  31. Спасибо автору за статью.

    Про выход из vim - при нажатии Control-C в строке информации заботливо подсказывается команда выхода :). Стоит еще дополнить о "принудительных" командах: :q! - выход БЕЗ сохнанения изменений, :w! - принудительно записать изменения, :e! - переоткрыть файл, не сохраняя изменений, :e! fname - открыть другой, не сохраняя изменений. Помню, как вначале был растерян, незнания таких команд.

    Хорошо бы упомянуть про команду повторения "." (точка) - повторяющее предыдущее действие - это удобно.

    Я понимаю, что это обзорная статья для начинающих, но вношу свое громогласное "Ура": в этом прекрасном редакторе есть запись *макросов*, суть кт. состоит в повторении каких-либо действий многократно. Макросы сохраняются в истории, и поэтому есть возможность выполнять их в любое время, пока не переназначится буква или не удалиться из истории. Макрос записывается: q<буква> в нормальном режиме, далее идет некая последовательность действий (Правка, набор текста - что душа пожелает) и завершаем запись: q также в нормальном режиме. Выполняем макрос: [число повторений макроса]@<буква>. Просто и удобно. Мой любимый пример - вставка списка:
    i<Tab>1.<Tab>Элемент списка<Esc>qaYp<Control-A>q
    и дальше использую: 9@a.

    Про поиск: поддержка регулярных выражений также стоит упомянуть, без них поиск скучный.

    Интересно, все-ли вимеры нахимают <Esc> в любом приложении, когда закончили мысль? :)

    ОтветитьУдалить
  32. ссылка "это просто более удобный самописный способ" выдаёт 403

    ОтветитьУдалить
  33. @Beggy комментирует...
    Добрый день, Virens.
    Приветствую!

    Давненько не читал, зашёл - а тут про Vim :) Спасибо.
    А это ж не я - это Pento выдал гостевой пост. Боян не мой, я только его запостил :-)

    Немного смущает меня часть про замену текста.
    Странно, но у меня заменяет именно так. Вим из Ленни, но что я там допиливал - не помню.


    @Анонимный комментирует...
    Спасибо автору за статью.
    Pento да, могуч. Я его на этот пост раскачал.

    Анонимусу спасибо за замечания. Pento отбил письмо, чтобы он поглядел. Пусть правит рука автора, я тут только на правах комментатора.

    Я понимаю, что это обзорная статья для начинающих
    Именно так оно и задумано. Ну и посты пропиарить лишний раз.

    Интересно, все-ли вимеры нахимают в любом приложении, когда закончили мысль?
    Я не говорю за всю Одессу, вся Одесса очень велика... но ловлю себя на мысли, что частенько давлю на Esc в Kate.


    @triklozoid комментирует...
    ссылка "это просто более удобный самописный способ" выдаёт 403
    Отбил письмо автору, дабы поправил. Я-то не знаю, куда она должна вести.

    ОтветитьУдалить
  34. virens, в очередной раз спасибо - даже если материал бывает староват, часто можно обнаружить что-нибудь новое для себя, хотя бы в комментариях ))
    Поправьте, пожалуйста, в параграфе "Войти и выйти" - начиная со второго абзаца все "что бы" в данном случае пишутся слитно, а в последнем предложении вторую часть уместнее начать с тире (а у Вас стоит "то").
    Поскольку этот пост предназначен, в основном, новичкам в vim, возможно, стоит упомянуть еще такой момент: в squeeze, например, по умолчанию стоит нехило обрезанная версия vim-а, именуемая vim-tiny. Так вот, по умолчанию она открывается в "режиме совместимости" с vi, а это значит, что новичок сталкивается с дополнительной порцией "бибикания и порчи текста", даже имея некоторое представление об i, Esc и ZZ. В режиме совместимости переключение в режим вставки текста не сопровождается строкой INSERT внизу экрана, клавиша backspace и ей подобные, нажатые "по привычке", могут вести себя непредсказуемым (для новичка) образом ну и так далее... Для отключения этого "режима совместимости" нужно ввести :set nocp или прописать эту команду в .vimrc. Если открыть "пустой" vim, (vim-tiny в squeeze вызывается по команде "vi"), то там в приветствии говорится о set nocp, но новичок может не заметить или не придать значения...

    ОтветитьУдалить
  35. triklozoid,
    > Есть такая штука, которая проще и удобнее, чем pathogen: https://github.com/gmarik/vundle
    Да, знаю про него...у меня просто небольшое количество расширений используется, поэтому хватает
    и традиционного способа установки. Но, согласен, что штука интересная! Ссылку тоже поправил, спасибо!

    Бетономешатель,
    у самого недавно возникла необходимость в нормальном редакторе в винде. Сначала по памати поставил
    фар+колорер, но потом всё равно установил вим. Привык.


    Анонимный,
    > По моему опыту, дальнейшему освоению нормального режима
    > здорово помогает graphical cheat sheet, который можно найти, к примеру, здесь
    Согласен, давно известная и полезная картинка :)

    Beggy, ты прав про % - поправил текст, спасибо!

    Анонимный, добавил про принудительные команды, спасибо! Про макросы таки надо сделать отдельный пост, хотя и не пользуюсь ими.

    ОтветитьУдалить
  36. @Анонимный комментирует...

    По воле хаоса, этот коммент почему-то попал в спам. Автор просит пардону - комментарий восстановлен.

    virens, в очередной раз спасибо
    А пост-то не мой, это Тарас (Pento) постарался.

    часто можно обнаружить что-нибудь новое для себя

    И то правда. Не далее как сегодня сам пользовался этим вот постом, правя кое-какие конфиги в виме. Удобно :-)

    Поправьте, пожалуйста, в параграфе "Войти и выйти"

    Снова отбил письмо Pento, вместе с RSS ссылкой на комметарии.

    Поскольку этот пост предназначен, в основном, новичкам в vim, возможно, стоит упомянуть еще такой момент: в squeeze, например, по умолчанию стоит нехило обрезанная версия vim-а, именуемая vim-tiny.
    Мммм... вот интересно, у меня на этом ноутбуке, с которого сейчас пишу, стоит как раз Сквизи, но vim-tiny там нет. Правда, я обновлялся с Lenny. Есть только Vim с моим vimrc, которому уже Аллах знает сколько лет.

    ОтветитьУдалить
  37. Да, в Lenny, кажется, стояла по умолчанию другая версия vim-а (точно не помню). А в моем Squeeze по команде update-alternatives --list editor предлагалось (в свежеустановленной системе) на выбор ed, nano, mcedit, vim.tiny. (Я, кажется, выше ошибся, vim.tiny пишется через точку, а не через дефис). Я ставил еще ранний тестинг, может быть, с тех пор что-то изменилось; в любом случае, чтобы полноценно пользоваться vim-ом, стоит поставить более полную его версию. Собственно, моя главная мысль заключалась в привлечении внимания к опции nocp, возможно, это уже не актуально.

    ОтветитьУдалить
  38. Интересно, все-ли вимеры нахимают в любом приложении, когда закончили мысль? :)

    Да я даже в шелле завёл алиас :q="exit"...

    ОтветитьУдалить
  39. Подскажите, пожалуйста, как обновить vim в debian wheezy до vim 7.4?
    Заранее спасибо ))

    ОтветитьУдалить
  40. ответ нашел здесь http://websearch.com.ua/nastroyka-vim-v-debian.html

    ОтветитьУдалить