Поиск по блогу

вторник, 1 июля 2014 г.

VIM - это редактор не для чайников, смотрим видео и пробуем интерактивную онлайн-обучалку

Здесь ссылки на Cygwin, плагины node-js, snipmate... на которые я вышел после двухдневного изучения онлайн справочников команд и утилиты vimtutor... Здесь еще неудачный копипаст поста из чужого справочника.

Published on Jun 4, 2012 Ведущий: Олег Мохов (Яндекс) Конференция DUMP Екатеринбург 25.05.2012
Interactiv Tutorial
Материал из Викиучебника
Небольшой справочник
Консольный VIM в Windows
node.js development Here be various snippets for use with Vim SnipMate to make node.js development quicker and easier
Продуктивная работа в vim с использованием snipMate
pathogen.vim
Полезные советы для VIM #4
cygwin
In []:
!vimtutor
 7 [?47h [?1h = [1;24r [H [2J [24;1H"/usr/share/vim/vim73/tutor/tutor.utf-8" [readonly] 970 lines, 33256 characters



"/tmp/tutorLHxd59" 970 lines, 33256 characters written



 [?1l > [2J [?47l 8 7 [?47h [?1h = [1;24r [H [2J [24;1H"/tmp/tutorLHxd59" 970 lines, 33256 characters [>c [1;1H===============================================================================

=    W e l c o m e   t o   t h e   V I M   T u t o r    -    Version 1.7      =

=============================================================================== [5;5H Vim is a very powerful editor that has many commands, too many to

     explain in a tutor such as this.  This tutor is designed to describe

     enough of the commands that you will be able to easily use Vim as

     an all-purpose editor. [10;5H The approximate time required to complete the tutor is 25-30 minutes,

     depending upon how much time is spent with experimentation. [13;5H ATTENTION:

     The commands in the lessons will modify the text.  Make a copy of this

     file to practise on (if you started "vimtutor" this is already a copy). [17;5H It is important to remember that this tutor is set up to teach by

     use.  That means that you need to execute the commands to learn them

     properly.  If you only read the text, you will forget the commands! [21;5H Now, make sure that your Shift-Lock key is NOT depressed and press

     the   j   key enough times to move the cursor so that Lesson 1.1

     completely fills the screen. ]2;tutorLHxd59 (/tmp) - VIM  ]1;tutorLHxd59  [1;1H
In []:
*help.txt* For Vim version 7.3.  Last change: 2010 Jul 20

   VIM - main help file
          k
      Move around:  Use the cursor keys, or "h" to go left,        h   l
      "j" to go down, "k" to go up, "l" to go right.  j
Close this window:  Use ":q<Enter>".
   Get out of Vim:  Use ":qa!<Enter>" (careful, all changes are lost!).

Jump to a subject:  Position the cursor on a tag (e.g. |bars|) and hit CTRL-].
   With the mouse:  ":set mouse=a" to enable the mouse (in xterm or GUI).
      Double-click the left mouse button on a tag, e.g. |bars|.
 Jump back:  Type CTRL-T or CTRL-O (repeat to go further back).

Get specific help:  It is possible to go directly to whatever you want help
      on, by giving an argument to the |:help| command.
      It is possible to further specify the context:
       *help-context*
     WHAT   PREPEND    EXAMPLE  
        Normal mode command      (nothing)   :help x
        Visual mode command   v_    :help v_u
        Insert mode command   i_    :help i_<Esc>
        Command-line command   :    :help :quit
        Command-line editing   c_    :help c_<Del>
        Vim command argument   -    :help -r
        Option     '    :help 'textwidth'
  Search for help:  Type ":help word", then hit CTRL-D to see matching
      help entries for "word".
      Or use ":helpgrep word". |:helpgrep|

VIM stands for Vi IMproved.  Most of VIM was made by Bram Moolenaar, but only
through the help of many others.  See |credits|.
------------------------------------------------------------------------------
      *doc-file-list* *Q_ct*
BASIC:
|quickref| Overview of the most common commands you will use
|tutor|  30 minutes training course for beginners
|copying| About copyrights
|iccf|  Helping poor children in Uganda
|sponsor| Sponsor Vim development, become a registered Vim user
|www|  Vim on the World Wide Web
|bugs|  Where to send bug reports

USER MANUAL: These files explain how to accomplish an editing task.

|usr_toc.txt| Table Of Contents

Getting Started  
|usr_01.txt|  About the manuals
|usr_02.txt|  The first steps in Vim
|usr_03.txt|  Moving around
|usr_04.txt|  Making small changes
|usr_05.txt|  Set your settings
|usr_06.txt|  Using syntax highlighting
|usr_07.txt|  Editing more than one file
|usr_08.txt|  Splitting windows
|usr_09.txt|  Using the GUI
|usr_10.txt|  Making big changes
|usr_11.txt|  Recovering from a crash
|usr_12.txt|  Clever tricks

Editing Effectively  
|usr_20.txt|  Typing command-line commands quickly
|usr_21.txt|  Go away and come back
|usr_22.txt|  Finding the file to edit
|usr_23.txt|  Editing other files
|usr_24.txt|  Inserting quickly
|usr_25.txt|  Editing formatted text
|usr_26.txt|  Repeating
|usr_27.txt|  Search commands and patterns
|usr_28.txt|  Folding
|usr_29.txt|  Moving through programs
|usr_30.txt|  Editing programs
|usr_31.txt|  Exploiting the GUI
|usr_32.txt|  The undo tree

Tuning Vim  
|usr_40.txt|  Make new commands
|usr_41.txt|  Write a Vim script
|usr_42.txt|  Add new menus
|usr_43.txt|  Using filetypes
|usr_44.txt|  Your own syntax highlighted
|usr_45.txt|  Select your language

Making Vim Run  
|usr_90.txt|  Installing Vim


REFERENCE MANUAL: These files explain every detail of Vim. *reference_toc*

General subjects  
|intro.txt| general introduction to Vim; notation used in help files
|help.txt| overview and quick reference (this file)
|helphelp.txt| about using the help files
|index.txt| alphabetical index of all commands
|help-tags| all the tags you can jump to (index of tags)
|howto.txt| how to do the most common editing tasks
|tips.txt| various tips on using Vim
|message.txt| (error) messages and explanations
|quotes.txt| remarks from users of Vim
|todo.txt| known problems and desired extensions
|develop.txt| development of Vim
|debug.txt| debugging Vim itself
|uganda.txt| Vim distribution conditions and what to do with your money

Basic editing  
|starting.txt| starting Vim, Vim command arguments, initialisation
|editing.txt| editing and writing files
|motion.txt| commands for moving around
|scroll.txt| scrolling the text in the window
|insert.txt| Insert and Replace mode
|change.txt| deleting and replacing text
|indent.txt| automatic indenting for C and other languages
|undo.txt| Undo and Redo
|repeat.txt| repeating commands, Vim scripts and debugging
|visual.txt| using the Visual mode (selecting a text area)
|various.txt| various remaining commands
|recover.txt| recovering from a crash

Advanced editing  
|cmdline.txt| Command-line editing
|options.txt| description of all options
|pattern.txt| regexp patterns and search commands
|map.txt| key mapping and abbreviations
|tagsrch.txt| tags and special searches
|quickfix.txt| commands for a quick edit-compile-fix cycle
|windows.txt| commands for using multiple windows and buffers
|tabpage.txt| commands for using multiple tab pages
|syntax.txt| syntax highlighting
|spell.txt| spell checking
|diff.txt| working with two to four versions of the same file
|autocmd.txt| automatically executing commands on an event
|filetype.txt| settings done specifically for a type of file
|eval.txt| expression evaluation, conditional commands
|fold.txt| hide (fold) ranges of lines

Special issues  
|print.txt| printing
|remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice
|digraph.txt| list of available digraphs
|mbyte.txt| multi-byte text support
|mlang.txt| non-English language support
|arabic.txt| Arabic language support and editing
|farsi.txt| Farsi (Persian) editing
|hebrew.txt| Hebrew language support and editing
|russian.txt| Russian language support and editing
|ft_ada.txt| Ada (the programming language) support
|ft_sql.txt| about the SQL filetype plugin
|hangulin.txt| Hangul (Korean) input mode
|rileft.txt| right-to-left editing mode

GUI  
|gui.txt| Graphical User Interface (GUI)
|gui_w16.txt| Windows 3.1 GUI
|gui_w32.txt| Win32 GUI
|gui_x11.txt| X11 GUI

Interfaces  
|if_cscop.txt| using Cscope with Vim
|if_lua.txt| Lua interface
|if_mzsch.txt| MzScheme interface
|if_perl.txt| Perl interface
|if_pyth.txt| Python interface
|if_sniff.txt| SNiFF+ interface
|if_tcl.txt| Tcl interface
|if_ole.txt| OLE automation interface for Win32
|if_ruby.txt| Ruby interface
|debugger.txt| Interface with a debugger
|workshop.txt| Sun Visual Workshop interface
|netbeans.txt| NetBeans External Editor interface
|sign.txt| debugging signs

Versions  
|vi_diff.txt| Main differences between Vim and Vi
|version4.txt| Differences between Vim version 3.0 and 4.x
|version5.txt| Differences between Vim version 4.6 and 5.x
|version6.txt| Differences between Vim version 5.7 and 6.x
|version7.txt| Differences between Vim version 6.4 and 7.x
      *sys-file-list*
Remarks about specific systems  
|os_390.txt| OS/390 Unix
|os_amiga.txt| Amiga
|os_beos.txt| BeOS and BeBox
|os_dos.txt| MS-DOS and MS-Windows NT/95 common items
|os_mac.txt| Macintosh
|os_mint.txt| Atari MiNT
|os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows)
|os_os2.txt| OS/2
|os_qnx.txt| QNX
|os_risc.txt| RISC-OS
|os_unix.txt| Unix
|os_vms.txt| VMS
|os_win32.txt| MS-Windows 95/98/NT
      *standard-plugin-list*
Standard plugins  
|pi_getscript.txt| Downloading latest version of Vim scripts
|pi_gzip.txt|    Reading and writing compressed files
|pi_netrw.txt|    Reading and writing files over a network
|pi_paren.txt|    Highlight matching parens
|pi_tar.txt|    Tar file explorer
|pi_vimball.txt|   Create a self-installing Vim script
|pi_zip.txt|    Zip archive explorer

LOCAL ADDITIONS:    *local-additions*

------------------------------------------------------------------------------
*bars*  Bars example

Now that you've jumped here with CTRL-] or a double mouse click, you can use
CTRL-T, CTRL-O, g<RightMouse>, or <C-RightMouse> to go back to where you were.

Note that tags are within | characters, but when highlighting is enabled these
characters are hidden.  That makes it easier to read a command.

Anyway, you can use CTRL-] on any word, also when it is not within |, and Vim
will try to find help for it.  Especially for options in single quotes, e.g.
'compatible'.

------------------------------------------------------------------------------
 vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
Я давно использую Vim в качестве основного редактора. И хотя над большими проектами работаю в eclipse, для внесения незначительных правок проще использовать Vim, чем ждать загрузки eclipse. Но Vim не совсем "простой текстовый редактор" у него три режима работы и множество команд. Изучение команд и возможностей Vim занимает время, но потраченное на изучение время быстро окупается.
Основные команды Vim очень простые, но сочетание простых команд может быть довольно мощным инструментом.

Режимы

В Vim имеется три режима работы с текстом:
  1. Командный режим: все нажатия клавиш интерпретируются как команды
  2. Режим вставки: используется для ввода текста
  3. Визуальный режим: используется для выделения текста или блока текста, этот режим можно рассматривать как под режим командного режима
Для переключения из режима вставки или визуального режима в командный режим, нажмите клавишу Esc.
Для переключения из командного режима в режим редактирования нажмите одну из клавиш:
  • i — переключает в режима вставки перед текущей позицией курсора
  • a — переключает в режим вставки после текущей позиции курсора
  • I — перескакивает к первому не пробельному символу в текущей строке и переключает в режим вставки
  • A — перескакивает к последнему символу в текущей строке и переключает в режим вставки
Для переключения из командного режима в визуальный режим нажмите одну из клавиш:
  • v — переключает в визуальный режим (выделение символов)
  • V — переключает в визуальный режим (выделение строк)
  • Ctrl+v — переключает в блочный визуальный режим (выделение прямоугольных областей текста)
Все команды которые работают с диапазонами (например: замена, вставка, удаление, копирование или отступы) поддерживаются в визуальном режиме.

Перемещения

Простейшие команды перемещения:
  • h — курсор влево
  • l — курсор вправо
  • j — курсор вверх
  • k — курсор вниз
Эти команды не работают в режима вставки, но во всех трёх режимах можно использовать клавиши перемещения курсора.
Есть множество команд доступных для перемещения в Vim, я приведу основные, если вам нужно что-то специфическое, смотрите в справочной системе Vim.
  • H — перемещения курсора вверх страницы
  • M — перемещение курсора в средину страницы
  • L — перемещение курсора в низ страницы
Прокрутка страницы:
  • Ctrl+e — на 1 строку вниз
  • Ctrl+d — на 1/2 страницы вниз
  • Ctrl+f — на 1 страницу вниз
  • Ctrl+y — на 1 строку вверх
  • Ctrl+u — на 1/2 страницы вверх
  • Ctrl+b — на 1 страницу вверх
Несколько основных команд перемещений по строке текста, в данном случае имеются ввиду строки экрана, а строки файла, которые могут занимать несколько экранных строк, если включен перенос строк.
  • 0 — первый символ строки
  • ^ — первый не пробельный символ строки
  • w — перескакивает к следующему слову
  • W — перескакивает к следующему слову, игнорируя символы пунктуации
  • e — перескакивает к конц слова
  • E — перескакивает к концу слова, игнорируя символы пунктуации
  • b — перескакивает к началу слова
  • B — перескакивает к началу слова, игнорируя символы пунктуации
  • ge — перескакивает к концу предыдущего слова
  • gE — перескакивает к концу предыдущего слова, игнорируя символы пунктуации
  • g_ — перескакивает к последнему не пробельному символу строки
  • \(</span> — перескакивает к последнему символу строки</li> </ul><p>Если запомнить хотя бы несколько из этих команд, то можно быстро перемещаться из точки А в точку Б. Так же важным фактом является то, что эти команды задают диапазон для других команд.</p><h3>Редактирование</h3><p>Вставка текста осуществляется в <strong>Vim</strong> довольно просто, нажал <span class="button">i</span> и начал печатать. Но для редактирования <strong>Vim</strong> предлагает довольно сложные команды.</p><ul> <li><span class="monospace">d</span> — удалить символ от текущей позиции курсора, до позиции заданной следующей командой (например: <span class="monospace">d\) удалит все символы от текущей позиции до конца строки)
  • c — изменить символ от текущей позиции до позиции заданной следующей командой
  • x — удалить символ под курсором
  • X — удалить символ перед курсором
  • y — копировать символы от текущей позиции до позиции заданной следующей командой
  • p — вставить удалённый или скопированный текст после текущей позиции курсора
  • P — вставить удалённый или скопированный текст перед текущей позицией курсора
  • r — заменить символ под курсором на новый, введённый
  • s — заменить текст с текущей позиции курсора до позиции заданной следующей командой введённым текстом
  • . — повторить последнюю команду вставки или редактирования (x,d,p...)
Двойная команда d, c или y выполнит операцию над всей строкой, например yy скопируют всю строку.
Обратите внимание, что многие команды из описанных здесь на самом деле являются более мощными. Например вы можете указать в какой регистр скопировать текст. При вводе "ayy копия строки сохраниться в регистре a, что бы вставить текст из этого регистра необходимо ввести "ap. Vim помнит несколько последних команд удаления и копирования в автоматических регистрах. Что бы посмотреть содержимое регистров наберите :registers. Вы так же можете использовать автоматические регистры для вставки старых фрагментов текста.

Визуальный режим

Используя визуальный режим можно вставлять текст в каждую строку выделенного фрагмента.
Например, мы выбрали прямоугольную область (использую Ctrl+v или Ctrl+q в windows), мы можем нажав I (переключившись в режим вставки) вставить свой текст. Как только выйдем из режима вставки, текст будет добавлен ко всем выбранным строкам. Для ввода текста после выделенной области нужно использовать A. Для выделений используются клавиши h, j, k и l курсорные клавиши в визуальном режиме не работают.
Другой удобной функцией является замена всего выбранного блока новым текстом. Для этого нужно выделить блок и нажать s, Vim переключиться в режим вставки и можно вводить текст. После выхода из режима вставки Vim вставит введённый текст во все строки.
Если мы хотим добавить текст в конце строк, то можно использовать Ctrl+v (или Ctrl+q в windows) \(</span> и выбрать строки. Разница между предыдущими вариантами и этим заключается в том, что <span class="monospace">\) указывает на концы строк, а Ctrl+v (или Ctrl+q) работает со столбцами, игнорируя текст.
Используем Ctrl+q:
Тестовый текстВСТАВЛЕННЫЙ ТЕКСТА

Ещё строка    ВСТАВЛЕННЫЙ ТЕКСТА

Текст         ВСТАВЛЕННЫЙ ТЕКСТА

Используем Ctrl+q $
Тестовый текстВСТАВЛЕННЫЙ ТЕКСТА

Ещё строкаВСТАВЛЕННЫЙ ТЕКСТА

ТекстВСТАВЛЕННЫЙ ТЕКСТА

Текстовые объекты

Команды Vim оперируют такими текстовыми объектами как символ, слово, предложения, разделённые скобками фрагменты и т.д.
Одним из важных объектов является внутреннее слово: iw. Для выделения слова под курсором достаточно набрать yiw (vвизуальный режим, iw — внутреннее слово), аналогично для удаления: diw.
Разница между i-словом/блоком и a-словом/блоком в том, что внутренний (i) вариант выбирает символы и слово (без пробелов) или содержимое скобок, не включая внешние пробелы и скобки. a-вариант выбирает блоки с внешними пробелами и скобками.
  • iw — внутреннее слово
  • aw — a слово
  • iW — внутреннее СЛОВО
  • aW — a СЛОВО
  • is — внутреннее предложение
  • as — a предложение
  • ip — внутренний параграф
  • ap — a параграф
  • i( или i) — внутренний блок
  • a( или a) — a блок
  • i< или i> — внутренний блок
  • a< или a> — a блок
  • i{ или i} — внутренний блок
  • a{ или a} — a блок
  • i" или i" — внутренний блок
  • a" или a" — a блок
  • i' или i' — внутренний блок
  • a' или a' — a блок
Небольшие примеры, что бы было понятнее. Символами [ и ] выделен выделенный блок.
Команда   Текстовый объект

iw        Это [тестовое] предложение.

aw        Это [тестовое ]предложение.

iW        Это[ тестовое ]предложение

aW        Это[ тестовое ]предложение.

is        ...предложение. [Это тестовое предложение.] Это...

as        ...предложение. [Это тестовое предложение. ]Это...

           конец предыдущего параграфа

ip        [Это параграф. Содержащий два предложения.]

           следующий параграф.

           конец предыдущего параграфа

ap        [Этот параграф. Содержит два предложения

          ]следующий параграф

i( or i)  1 * ([2 + 3])

a( or a)  1 * [(2 + 3)]

i< or i> The <[tag]>

a< or i> The [<tag>]

i{ or i}  some {[ code block ]}

a{ or a}  some [{ code block }]

i"        The "[best]"

a"        The[ “best”]

i`        The `[best]`

a`        The[ `best`]

Пробуйте эти команды и запоминайте, они помогут сэкономить много времени.

Отмена и Возврат

Отменить можно почти все команды (Ctrl+z), в командном режиме можно даже отменить отмененную команду (Ctrl+r)

Выполнение внешних команд

В Vim легко получить результат выполнения внешних команд или использовать часть строки в качестве аргумента внешней программы.
Для вывода результат выполнения внешней команды :!command, будет показан вывод команды.
Для фильтрации текста через внешнюю команду :!sort %.
Для вставки вывода внешней команды в текст :r!command (например :r!ping ya.ru)
Для получения подробной информации по фильтрации выполните :h filter.

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

Поиск в Vim организован очень просто. Нажмите / в командном режиме и вставьте термин который хотите найти. Vim выполнит поиск по файлу в прямом направлении. Для поиска в обратном направлении используйте ?. Используя n или N можно повторить поиск в том же обратном направлении.
Если установлена опция 'incsearch', то Vim сразу же переходит к первому совпадению, когда вы начинаете вводить термин. Если установлена опция 'hlsearch', то будут подсвечиваться все совпадения. Что бы удалить подсвечивание, наберите :nohl.
Замена текста тоже не представляет трудности, если вы знакомы с регулярными выражениями.
Для замены с использованием регулярных выражений, наберите :%s/старый текст/новый текст/gc. Эта команда выполнит поиск во всём файле % и произведёт замену s фразы "старый текст" на "новый текст", будет искать более одного совпадения в каждой строке g и спрашивать перед заменой, действительно ли вы хотите заменить фразу c.
Для замены текста в выбранной области, выберите область и наберите :s/старый текст/новый текст/g. В командной строке это должно выглядеть как :'<,'>s/старый текст/новый текст/g. Что означает '< и '> вы поймёте после прочтения раздела Метки.

Завершения

Когда вы набираете текст, то довольно часто приходится набирать одни и те же слова. При нажатии Ctrl+p Vim будет искать продолжение слова, которое мы набираем, в набранном ранее тексте. Ctrl+x и Ctrl+l завершит набранный текст до конца строки.
Если вы не уверены в правильности написания слова, можно включить проверку орфографии :set spell и при нажатии комбинации Ctrl+x и Ctrl+K Vim выполнит поиск в словаре. Механизм завершения слов существенно улучшился в 7 версии Vim.
Обратите внимание, что команды завершения работают в режиме вставки, в командном режиме у них другое назначение!

Метки

Для быстрого перехода в разные места документа или между документами, можно выставлять метки.
Некоторые метки Vim ставит автоматически:
  • {0-9} — 10 последних позиций в закрытых файлах (0 последний файл, 1 предпоследний и т.д.)
  • < и > — левая и правая позиции помеченного текста.
  • ( и ) — начало и конец текущего предложения
  • { и } — начало и конец текущего параграфа
  • [ и ] — первый и последний символы скопированного или изменённого текста
  • . — позиция последней замены
  • ' или </span> — позиция перед последним переходом</li> <li><span class="monospace">"</span> — позиция перед последним выходом из файла</li> <li><span class="monospace">^</span> — позиция последней стоп-вставки</li> </ul><p>Для установки ручной метки используйте <span class="monospace">m{a-zA-Z}</span> (после m следует либо a,b..z или A, B..Z). Для перехода между метками используются <span class="monospace">'</span> и <span class="monospace">.
    • ' — устанавливает курсор на первый не пробельный символ в отмеченной строке
    • </span> — устанавливает курсор на место где была установлена метка</li> </ul><p>Существует различие между строчными и заглавными символами меток:</p><ul> <li><span class="monospace">{a - z}</span> — локальный файл</li> <li><span class="monospace">{A - Z}</span> — сохраняется и доступно между сессиями (ассоциированы с файлами)</li> </ul><p>Можно использовать метку <span class="monospace">L</span> для ведения рабочего журнала и <span class="monospace">T</span> для своего расписания и быстро обновлять информацию в них.</p><p>Например можно легко перейти к позиции курсора перед закрытием файла, набрав <span class="monospace">" (в настройках Vim легко сделать, что бы при открытии файла курсор автоматически перемещался в эту позицию) Для получения списка всех меток можно набрать команду :marks. Для удаления меток используется :delmarks. :delmarks a b c удалит метки a, b и c, для удаления всех меток используйте :delmarks!

      Вкладки, буферы и окна

      С седьмой версии в Vim появились вкладки. Вкладки Vim сильно отличаются от вкладок в других редакторах, они скорее похожи на копии Vim в терминальном окне с вкладками. Например каждая вкладка может иметь свой макет. Например в первая вкладка у вас может быть разделена на два окна с html кодом и стилем css. Во второй вкладке можно держать одно окно с js скриптом и т.д. В разных вкладках можно держать одинаковые открытые файлы. В общем вкладки в Vim более мощные чем у большинства других редакторов.
      Для открытия нескольких файлов во вкладках можно использовать командрую строку vim -p *.css
      Для переключения между вкладками можно использовать мышь или набрать gt.
      Для создания новой вкладки наберите команду :tabnew, для открытия файла в новой вкладке :tabe имя_файла
      Буферы и окна в Vim немного сложнее для понимания. Окно это то, что вы виде запустив Vim, когда вы запускаете систему справки (например набрав :help buffers), вы получите два окна. Таким образом они скорее не окна, а видимые области.
      Вы можете открыть окно и разделить его по горизонтали :sp или вертикали :vsp. Vim отобразит один буфер в двух разных окнах. Так же можно открывать новый файл :sp имя_файла или :vsp имя_файла. Для переключения между окна используется мышь или Ctrl+w {h, j, k, l} в командном режиме.
      Буфер это файл (в большинстве случаев), но не обязательно видимый. Обычно используется больше буферов, чем окон. Для отображения другого буфера в текущем окне используйте :b номер_буфера. Номер буфера можно узнать из списка буферов :buffers. В стандартной конфигурации Vim сохраняет текущий буфер при переключении на другой. Для отключения сохранения буфера используйте команду :set hidden, но будьте осторожны.
      Вот некоторые команды из справочной системы:
      • :b N — переключает на буфер N
      • :buffers — показывает список буферов. Разъяснения:
        • % — текущее окно
        • # — альтернативный буфер (переключается :e# или :b#)
        • a — активный буфер (загружен и видим)
        • h — скрытый буфер (загружен, но не видим)
        • + — изменённый
      • :bd — выгружает буфер и удаляет его из списка буферов (не закрывает Vim, даже если это последний буфер)
      • :bun — выгружает буфер, но оставляет его в списке буферов
      • :sp #N — делит текущее окно по горизонтали и открывает в нём буфер N
      • :w — записывает текущий буфер на диск
      • :e имя_файла — загружает файл с диска
      • :q — закрывает текущее окно (и Vim, если оно было последним)
      • :new — новое пустое окно
      • :on — закрывает все окна, кроме активного (Ctrl+W o)
      • Ctrl+W {h, j, k, l} - перемещение между окнами
      Буферы автоматически сохраняются, если опция 'hidden' не установлена, а опция 'autowrite' установлена.

      Макросы

      Vim позволяет выполнять некоторые команды используя . (точка). Для повторения более чем одной команды можно использовать макросы.
      Начать запись макроса можно с помощью q и одной из меток {0-9a-zA-Z}, например qq запишет макрос помеченный как "q". Нажав q можно остановить запись.
      Теперь макрос можно повторить в любой момент используя @ q.

      Заключение

      Надеюсь этот материал поможет в освоении возможностей одного из самых интересных и сложных текстовых редакторов.
      Похожие по тематике посты:


Посты чуть ниже также могут вас заинтересовать

1 комментарий: