aide vim ru aide vim

помощь vim

back to the home page

version available in : en it zh es ja de nl fr

date of creation : 20220618- date of update : 20220618- generation date : 20240612_171233

1.Gvim

vim vim_25_presentation_by_bram_moolenaar_on_2016_november_2 mastering_the_vim_language

2.начало работы с vi



 - vi - стандартный редактор в любом дистрибутиве UNIX. vi не развивался с момента своего создания, что делает его деревенским редактором.
Но его первоначальный дизайн очень сильно соответствует духу unix"^..
- эволюция vi - редактор vim (улучшенный Брэмом Муленаром)см. ниже.
- запустить редактор с именем обрабатываемого файла в качестве аргумента "vi toto.txt" - редактор запускает полноэкранное окно, в котором появляются строки текста. Пустые строки, начинающиеся с "~" видны, если число количество строк в файле меньше, чем количество строк в окне.
- по умолчанию мы находимся в командном режиме редактора, т.е. все клавиши на клавиатуре являются командой.
- например, для перемещения используйте клавиши h,j,k,l . touches de déplacement vi  - для вставки текста используйте, например, ключ "i" для "вставки", "a для добавления", "R" для замены - по окончании редактирования текста нажмите клавишу "esc"^ для выхода из режима редактирования.
- под vi, необходимо выйти из режима редактирования, чтобы изменить строку: чтобы сделать ход, нужно переключиться обратно в командный режим.
К счастью, в vim это ограничение снимается.
- для всех заказов см. . vimaz  - существует также . mode ligne de commande vi  который можно получить, набрав клавишу ":" и который позволяет запускать глобальные команды на выборке строк в файле.
- в заключение этого вступления хочу сказать, что под деревенским, даже архаичным внешним видом vi скрывается уникальный по своей концепции редактор, тип редактора в своем собственном праве сам по себе. Именно благодаря этому первоначальному дизайну vim признан самым мощным из доступных редакторов.
3.начало работы с vim

Вы только что вошли в редактор vim.
Вы можете использовать клавиши со стрелками (стрелки и пагинация) для перемещения по тексту.
Самое важное, что нужно знать, что делает vim (vi) уникальным является тот факт, что vim (vi) это многорежимный редактор.
Основная особенность редактора vim (vi) будет работать преимущественно в . mode commande vi  Можно сказать, что существует два вида редакторов, которые работают по умолчанию и в основном в режиме редактирования (вы набираете текст на клавиатуре, и она пишет текст) и те, которые работают по умолчанию и в основном в командном режиме (вы набираете текст на клавиатуре, и она выполняет действия).
В первом случае есть все редакторы, кроме vi и vim. (emacs, ultraedit, notepad, ...начало работы с vim) во втором - vi и vim..
vim - это историческое расширение, развитие оригинального vi из системы unix, который не развивался, за исключением vim.
Режимы работы vim следующие:

  • тот . mode commande vi : это режим vim по умолчанию, в этом режиме клавиши клавиатуры не используются для ввода символов, а являются командами.
    Эти элементы управления, как ни удивительно, очень эргономичны, см. . vimaz  Действительно, их легко запомнить, если поискать английское слово, которое вызвало выбор буквы..
    Если сравнить эргономику WORD, связанную с функциональными клавишами, с комбинацией управляющих клавиш SHIFT,CTRL,ALT, то сразу видно, что стать опытным пользователем WORD будет очень сложно, в то время как стать опытным пользователем vim может потребовать усилий по адаптации в начале, но затем становится довольно легко, потому что существует основополагающий порядок в номенклатуре команд.
  • тот . mode ligne de commande vi : если вы введете символ ":" мы переходим в командную строку vim, где мы можем вводить команды.
    Чтобы выйти из этого режима, вы можете сделать это либо путем . ENTER  который подтверждает введенный приказ, или путем . ESCAPE  который выходит из командного режима, ничего не выполняя.
  • тот . mode de saisie vi : это режим для ввода текста.
    Этот режим присутствует во всех редакторах.
    Чтобы войти в этот режим, необходимо ввести команду . commande de modification vi  которая позволяет набирать текст, например, набрав клавишу "i", вы переходите в режим вставки.
    вступление . ESCAPE  позволяет выйти из этого режима и вернуться в основной режим на . mode commande vi .

    4.режим ввода vi

    
    
     В vim режим ввода идентичен редактору типа блокнота.

    Вход в этот режим осуществляется из . mode commande vi  введя следующие команды: - "a"^ для добавления текста (добавляет после текущего символа) - "i"^ для вставки текста (вставляет непосредственно перед текущим символом) - "R" для замены текста (заменяет текст, начиная с текущего символа) - "o"^ для открытия новой строки ( "O"^, чтобы открыть его выше текущего) - "s" для замены (эквивалентно "R").

    Текст вводится с помощью обычных клавиш, а движение осуществляется с помощью стрелки, клавиши подкачки, можно изменить режим "вставки".
    "заменить", удалить символ с . Suppr  и использовать меню, чтобы сохранить изменения, выйти и выполнить поиск, выделять с помощью мыши, использовать копирование и вставку.

    Поэтому мы можем считать, что vim является супермножеством блокнота.

    Поэтому нет причин продолжать использовать блокнот, если у вас есть vim..

    Выход из режима ввода с помощью клавиши escape . ESCAPE  .

    5.режим командной строки vi

    На самом деле это команды редактора "teletype", предшественника vi, редактора "ed"^..
    Когда компьютерный ввод можно было просматривать на экране, а не на телетайпе, "ed" превратился в "vi". (что является аббревиатурой от "визуальный".).
    Это означает, что "vi" содержит гены из "ed"..
    ed, кстати, породило команду "sed", которая может означать "stream ed", например.
    Доступ к этому режиму осуществляется путем ввода символа ".:" от . mode commande vi .
    В vim можно получить уже введенные команды, перемещаясь с помощью стрелок вверх и вниз..
    Можно даже ввести начало команды, а затем с помощью стрелок выбрать только те команды, которые соответствуют введенному префиксу.

    vim
    заказатьnote_ru действие  
    :b nn    возвращает буфер в нормальное состояние (fichier) идентифицируется как "nn", список буферов см. в команде :ls  
    :е файл    редактирует файл, путь к которому введен  
    :g/expr/    глобальный : выбирает строки, содержащие регулярное выражение "exp" и :  
    :g/expr/l    - перечисляет строки  
    :g/expr/d    - разрушает линии  
    :g/expr/s///    - применяет команду подстановки "s" к выбранным строкам  
    :ls    перечисляет буферы, уже отредактированные во время сеанса, и показывает их номер (см. заказ :b nn)  
    :n    next - выводит следующий буфер, если было запрошено несколько файлов  
    :q    покиньте редактор ":q!" принудительный вывод без сохранения  
    :r    перемотка - возврат к первому буферу, запрошенному при открытии vi или при заказе ":n файл"  
    :s    . substitution de chaine   
    :w    сохраняет текущий файл ":w!" принудительное переписывание в случае предупреждения  
    :x    eXit сохраняет текущий буфер и выходит из vi  
    :map_ru    создает новый . mode commande vi  комбинацией команд в этом режиме  
    !    . shell vi позволяет взаимодействовать с внешней средой программы vi, предлагает безграничные возможности  
    / или :/    поиск . expression régulière  (цели отображаются желтым цветом) команда "n"^ позволяет перемещаться по поиску
    специфический
    :gf    перейти к файлу, открывает файл, путь к которому находится под курсором  
    :sp    split , разделяет рабочую область на две части, чтобы открыть второй буфер, переключаемый ctrl-W w  
    :tabnew    добавлена вкладка рабочего пространства  

    5.1.режим командной строки tip vi

    • символ восклицательного знака "!" указывает :
      • или акцент на команде (команда выполняется принудительно без учета соответствующего предупреждения)
      • или взаимодействие с внешним миром: shell, эта последняя возможность делает vi открытым редактором см. . shell vi .
    5.2.раковина vi

    Использование символа "!" в различных контекстах позволяет вам отдавать системные команды.

    В командной строке vi, например, введите ":!dir ", чтобы открыть оболочку и выполнить команду dir.
    или в . mode commande vi  , "!", за которым следует команда перемещения (ne если бы только ENTER) отображает приглашение, в котором вы можете ввести команду система. Буфер, выбранный при перемещении, отправляется на стандартный вход в программе (stdin) и стандартный вывод (stdout) извлекается и помещает результат в разграниченный буфер путём перемещения (старый буфер теряется).

    Мы можем запустить SQL-запрос с помощью команды isql, преобразовать текст с помощью perl-скрипта, писать программы на языке Си для создания новых команд редактирования, ... Возможности безграничны.

    5.3.команда map

    приказ :карта позволяет создать новую команду.
    Например, команда :"map І j.
    " создает команду "²", которая определяет местоположение последней команды на следующей строке.

    5.3.1.пример карты команд аналогия vim mq
    Я не могу не провести здесь забавную аналогию с <mécanique_quantique_ru_nweb>(fr.wikipedia.org/wiki/M%C30X0P+09canique_quantique) и оператор гамильтониана H
    ответственные за эволюцию во времени. Этот оператор можно рассматривать как комбинацию операторов создания и разрушения энергетических состояний (или частицы в квантовой теории поля).
    Энергии часто составляют H = потенциальная энергия кинетическая энергия = a² b² и с комплексной факторизацией или i²=-1 H = (a ib)(a-ib) = C * D, C и D - операторы создания и уничтожения..

    Если мы рассмотрим строку текста в vim и команду "x" для удаления символа (разрушение),
    команда вставки содержимого буфера по умолчанию "p"^ (создание)
    и их комбинация "xp" в команде ".:карта
    мы создадим новую команду ": эволюция.
    Но здесь пространство символизируется чертой подчеркивания и, например, символом o в виде частицы :
    путем применения команды ".

    Вы также можете создать обратный оператор с помощью ":карта

    __________________________________o___________________________________________________________________

    - выполнить макросы на "o"^. (квантовая частица :-квантовая механика nweb)

    - для компиляции макросов без копирования их в командную строку можно использовать макрос [xlm_ru] поместив себя в строку макроса.
    карта
    карта
    - Траектория может быть определена следующим образом
    карта #H
    - Циклическая траектория (осцилляция) рекурсивным макросом:
    карта #S #H#S
    - Внимание: этот рекурсивный макрос может быть прерван только с помощью CTRL-C
    мы замечаем, что остановка макроса может оставить систему с уничтоженной частицей, "o" исчезла (он вернулся в квантовый вакуум) или создан, "o" присутствует, но, вероятно, в другом месте, а не в своем первоначальном положении.
    Это говорит нам о том, что когда макрос прерывается, это происходит на "атомарной" команде, а не на макросе, вызываемом макросом.
    Я думаю, что этот пример очень хорошо показывает динамику макросов.
    В Vim есть другой способ записи последовательности команд.
    Это команда "q"^, которая позволяет записать последовательность команд, которые затем будут набраны на клавиатуре (ввод еще одного "q"^ останавливает регистрацию) и команда "@"^, которая позволяет выполнять такие команды.
    Команды хранятся в буферах, названных буквенно-цифровым символом, который должен быть указан в сочетании с командами "q" и "@"..
    Например, q03dwj сохраняет в буфере 0 команду 3dwjbbb, которая удаляет 3 слова и переходит к следующей строке, возвращаясь на 3 слова назад при выполнении такой последовательности.
    команда @0 повторяет последовательность.

    5.4.замещение цепи

    Команда ":s/chaine1/chaine2/" замена цепочки1 на цепочку2 дает очень мощные возможности: Если вы хотите внести изменения в символ "/", вы должны использовать "\\/" для указания этого символа или использовать другой символ-разделитель строк ":s.
    цепь1.
    канал2.
    "

    :s/toto/titi/  заменить "^тото" на "тити" в строке  
    :с/тото/тити/г  заменить все "тото" на "тити" в строке  
    :1,$/тото/тити/г  заменить все "тото" на "тити" во всем файле  
    :., 10/toto/titi/g  заменяет все "тото" на "тити" начиная с текущей строки на десять строк  
    :g/tata/s/to/titi/g  заменить все "тото" на "тити" во всех строках, содержащих строку "тата"  
    :'a,'bg/tata/s/to/titi/gзаменяет все "тото" на "тити" во всех строках, содержащих строку "тата" между строками, хранящимися по индексам "a" и "b" 

    5.4.1.. expression régulière : регулярное выражение

    Регулярные выражения можно использовать для задания сложных строк поиска.

    Символ "." используется для указания любого символа.
    Символ "*"^ используется для указания любой последовательности символов.
    Символ ""^ используется для указания начала строки Символ "^$"^ используется для указания конца строки

    Блок "" используется для указания возможного набора символов в регулярном выражении.
    Например :

  • a-zA-Z_ru обозначает один алфавитный символ верхнего или нижнего регистра.
  • 0-9_ru означает любое число
  • 1-2_ru0-9_ru0-9_ru0-9_ru обозначает форму года от "1000" "2999"

    Например, "тото.*titi" относится к части строк, которые начинаются с toto и заканчиваются titi.
    Например "^.*это.*тити.*" обозначает строки, которые содержат и toto, и titi в таком порядке.
    Например, "^тото.*titi$" обозначает линии, которые начинаются с toto и заканчиваются titi.

    |" (backslash-pipe) так что "^тото.|тити.*toto" позволяет, например, в команде g//s/////.
    вносить изменения только в строки, соответствующие критерию.
    Мы находимся почти на уровне запросчика текстового режима.

    5.4.1.1.под полями

    Можно разбить строку или часть строки на подполя в регулярном выражении в команде ":s".

  • Подполя определяются в целевой строке с помощью "обратной косой черты" круглых скобок. :(.)(..)
  • Затем подполя могут быть использованы в строке замены \\1 \\2 \\3 и т.д....

    Пример: цепь целей: "Прекрасная маркиза, твои прекрасные глаза заставляют меня умирать от любви".
    (B.)(v.)()()()" который называется \\1 \\2 \\3 \\4 \\5

    Команда ":(B.)(v.)()()()/\\5 \\4\\3/" со всеми перестановки подполей порождают менее красивые формы прозы первого предложения: любви твои прекрасные глаза умирают, делая меня прекрасной маркизой.

    6.командный режим vi

    Именно этот режим объясняет возможности vim.
    Каждый ключ - это команда.

    Существуют основные типы команд:

    Команды разных типов можно комбинировать: изменение*перемещение, например :
    • "dw" удаляет текущее слово
    • "df;" удаляет текст на строке до следующей точки с запятой (найти)
    • "dt;" удаляет текст на строке до следующей точки с запятой, не удаляя точку с запятой (на)
    Макрокоманды могут быть созданы путем комбинирования базовых команд с командой . map cmd  с сайта . mode ligne de commande vi .
    Примечание: Команды в этом режиме можно рассматривать как операторы, которые можно комбинировать.
    Этот комбинированный механизм оператора (можем ли мы говорить об операторной алгебре?) очень мощный.
    Операторы могут быть связаны с кардинальными характеристиками, которые указывают, сколько раз команда должна быть повторена.
    например, "5dw" удаляет следующие пять слов.
    Макрокоманды можно комбинировать и даже рекурсировать (прекращение рекурсии должно быть предусмотрено: вызванное невозможностью выполнения приказа)
  • Новый режим, доступный только в vim,
  • выделение текста с помощью "v".
    • Вы выходите из этого режима с помощью "escape", что приводит к сохранению выделенного текста в буфере по умолчанию. (Только конфигурация VT)
    • Если вы находитесь в конфигурации WINDOWS, используйте мышь и обычные сочетания клавиш копирования и вставки.

    6.1.управление движением vi

    Команды перемещения, см. тип "d" в списке . vimaz  можно комбинировать с другими командами изменения для формирования новой команды изменения.
    Клавиши со стрелками, конечно, являются рабочими и работают в сочетании с клавишами SHIFT, CTRL.

    6.2.изменить команду vi

    Команды модификации, см. тип "m" в списке . vimaz 

    6.3.исследовательский заказ vi

    Команды поиска, см. тип "r" в списке . vimaz 

    6.4.команда управления буфером vi

    Команды буфера, см. тип "g" в списке . vimaz 

    6.5.. vimaz :Я прошел от А до Я

    Алфавит vim.
    Когда вы находитесь в . mode commande vi  каждая буква - это команда :

    колонкаописание  
    . lettre   письмо-заказ. Это может быть одиночная буква, удвоенная, за которой следует другая буква, за которой следует тип приказа
     Двойная буква, упомянутая ², которая не используется в vim  
     Буква, за которой следует любая другая буква - последний случай обозначается наличием "ундерскора", например, f_  
     Далее следует тип команды "d", например, для перемещения, в этом случае действуют все команды перемещения  
    . commande type    тип заказа : d Перемещение, m Редактирование, r Поиск, g Управление буфером  
    . note vim   полезность или мощность порядка, упомянутого серией более ... или меньше  
    . mnemo   происхождение использования буквы для обозначения команд, мнемонических средств, в английском языке, конечно же  

    . lettre  . type cmd  . mnemo   . note vim  действие  
           . caractère non alphabétique vi   
    .  m      повторяет последнюю команду изменения  
    ~  m      верхний регистр нижний регистр обратный. Используется с "g" : g~d  
    ^  d      переходит в начало строки  
    $  d      переходит в конец строки  
    *  r      vim ищет слово под курсором : все цели окрашены в желтый цвет . Смотрите здесь g*  
    '_  d      "cote", за которым следует буква, перемещает курсор на строку, сохраненную этой буквой см. m_  
             
    "_yd  g      "двойное измерение" за которым следует буква, а затем "y" yank за которым следует команда move сохраняет перемещаемый текст в буфере, названном этой буквой  
    "ayfo  g      пример: "afo сохраняет в буфере "a" от текущего символа до следующего "o" в текущей строке  
    "byy  g      "byy сохраняет текущую строку в буфере b  
    "by'b  g      "b'b сохраняет в буфере b от текущей строки до строки, хранящейся под индексом b  
           . caractère alphabétique vi   
    a  m  добавить    добавляет текст после текущего символа и переключается в режим . mode de saisie vi   
    A  md  Добавить    добавляет текст в конец строки переключается на . mode de saisie vi   
    b  d  назад    перемещает курсор на одно слово назад, если . majuscule  слова просто разделены пробелами и пробелами  
    B  d  Назад    idem "b" si . majuscule  слова, определяемые тем, что разделено пробелами и пробелами  
    c_  m  изменить  -  "c"^ с последующим . commande de déplacement vi  изменяет текст от текущего символа до конца перемещения  
    C  m  Изменить  -  изменяет текст от текущего символа до конца строки  
    dd  m  удалить    "d" с последующим . commande de déplacement vi  удаляет текст от текущего символа до конца перемещения  
    d²  m  удалить    "d" удвоенная удаляет текущую строку  
    D  m  удалить    удаляет текст от текущего символа до конца строки  
    e  d  конец    перемещает курсор в конец текущего слова  
    E  d  Конец    перемещает курсор в конец ".. mot large " ток  
    f_  r  найти    "f" с последующим символом перемещает курсор вниз по строке к символу, если он существует  
    F_  r  найти    "F" то же, что и "f", но перемещается в начало строки  
    g²  d  перейти    перемещает курсор в начало файла  
    G  d  перейти    перемещает курсор в конец файла  
    g*  r  глобальный    (vim) то же самое, что и "*"^, но поиск ведется не по слову, а по строке (если оно встречается в слове)  
    g~d  m  глобальный    меняет местами прописные и строчные буквы до тех пор, пока не произойдет перемещение  
    gf  d  перейти к файлу    редактирует файл, путь к которому находится под курсором  
    i  m  вставить    вставляет символы, набранные позже, до того, как текущий символ переключится на . mode de saisie vi   
    I  md  Вставка    вставка символов, набранных позже, в начало строки переключается на . mode de saisie vi   
             
    J  m  присоединяйтесь к    конкатенирует текущую строку со следующей строкой (объединение двух линий) между двумя строками вставляется пробел  
           смещаемая клавиатура : hjkl jk:вверх вниз , hl влево вправо (для использования в макросе вместо стрелок) оригинальная клавиатура без трекпада  
    . touches de déplacement vi 
    h  d      стрелка влево  
    j  d      стрелка вверх  
    k  d      стрелка вниз  
    l  d      стрелка вправо  
             
    m_  d  запомнить    "m"^ с последующей буквой запоминает следующую строку с этой буквой в качестве индекса, вызов осуществляется с помощью символа "cote": '  
             
    o  m  открыть    открывает или вставляет строку после текущей строки  
    O  m  Открыть    открывает или вставляет строку ПЕРЕД текущей строкой  
    p  m  разместить    вставляет содержимое текущего буфера  
    r_  m  заменить    заменяет текущий символ, переключение остается в режиме . mode commande vi   
    R  m  Заменить    заменяет текст с текущей позиции, переключается на . mode de saisie vi   
    s  m  заменять  заменяет текст с текущей позиции, переключается на . mode de saisie vi   
    S  m  Субститут-  заменяет текущую строку набранными позже символами переключается на . mode de saisie vi   
    t_  r  на    "t"^ с последующим символом перемещает курсор на строку непосредственно перед символом, если он существует  
    T_  r  На    "T" то же самое, что и "t", но перемещается в начало строки (полезность в сочетании с двойным управлением  
    u  m  отменить    "undo" отменяет последнее изменение. undo отменяет все изменения с момента последнего редактирования файла . "redo" ctrl-r - это обратная операция отмены
    v  g      (vim) переходит в режим выбора текста (линейное представление текста) ctrl-v в режиме выбора прямоугольного блока (поверхностный взгляд на текст)  
    w  d  конец    перемещает курсор в конец текущего слова  
    W  d  Конец    перемещает курсор в конец ".. mot large " ток  
    x  m      удаляет письмо  
    yd  g  янк    "y" с последующим . commande de déplacement vi  сохраняет в буфере по умолчанию текст, связанный с перемещением, используется совместно с буферами с именем "_  
    z²        "z." или "zz" центрирует окно на текущей строке  
    z. ENTER         позиционирует текущую строку в верхней части окна  
    z-        позиционирует текущую строку в нижней части окна  
           . commandes utilisant la touche CTRL   
    CTRL-R        "редо"" обратная сторона "у"" "ундо""  
    CTRL-A        увеличивает число под курсором  
    CTRL-X        уменьшает число под курсором  

    7.метод vim

    Как легко перемещаться по файлу, над которым вы работаете.

  • Использование опорных точек ("m a", "m b", ...
    "m z").
    Должны быть определены стандартные опорные точки (буква алфавита) которые будут систематически использоваться для определенной цели.
    Таким образом, мы определяем своего рода личную номенклатуру опорных точек.
    Первая опорная точка должна быть основной точкой редактирования, остальные - другими точками, из которых информация извлекается для редактирования.
    Например, аналогичный шаблон кода.
  • Использование строки поиска (ввод или команда *, alt-*) и команды n и N (следующий).
  • с утагами :
    • устанавливать соответствующие гипертекстовые теги, а затем обращаться к ним через сводку файлов. Цепь этикетку можно легко найти.
    • позиционирование гипертекстовых ссылок в тексте для доступа к меткам.

    7.1.широкое слово

    слово, определяемое только тем, что разделено пробелами и пробелами.
    пример: "с утра понедельника"

  • одно "широкое слово".

    7.2.верхний регистр

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

  • изменение направления - действие, выполняемое в конце или начале линии