XMLstarlet для JSON?

Можно воспроизвести нажатия клавиш в vi как макрос, если этого достаточно для ваших нужд. Это можно сделать двумя способами.

В обоих случаях я начну с аналогичным содержанием для vim , а затем выделю для vi .

1. Зарегистрировать макросы

Они захватываются и воспроизводятся в интерактивном режиме.

1.1 vim

Напомним, что в vim макрос создается путем записи серии нажатий клавиш в регистр в режиме записи (доступном из командного режима). Затем макрос выполняется, выполняя содержимое регистра.

qa                # 1. Enter recording mode, will save to register "a.
  ihello     #    Type key strokes to insert string "hello".
             q    #    Return to command mode.

@a                # 2. Execute contents of register "a (insert "hello").

@@                # 3. Repeat last macro execution (insert "hello").

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

1.2 vi

В vi шаг 1. выше выполняется по-другому: содержимое макроса должно быть напечатано в буфере в режиме вставки, а затем скопировано / скопировано / и т. Д. В регистр .

i                            # 1a. Enter insert mode.
 ihello         #     Type key strokes to insert string "hello", escaping necessary keys.
                        #     Return to command mode.

"aY                          # 1b. Yank entire line to register "a (macro text should appear on a line by itself).

@a                           # 2. Execute contents of register "a (insert "hello").

@@                           # 3. Repeat last macro execution (insert "hello").

2.Сопоставления клавиш

Их можно захватить в интерактивном режиме или в соответствующем файле * rc .

При выполнении сопоставления оба vim и vi ждут 1 секунду (по умолчанию), чтобы принять все нажатия клавиш, составляющие отображаемое слово.

2.1 vim

:cmap lhs rhs    # Map rhs-words to lhs-word for command-mode mappings.
:imap lhs rhs    #                           for insert-mode mappings.
:map! lhs rhs    #                           for command- and insert-mode mappings.
:map  lhs rhs    #                           for normal-mode mappings.
:nmap lhs rhs    #                           for strict normal-mode mappings.
                        # Escape necessary keys in lhs and rhs.
                        # lhs "#n" means function key "n"
                        # Use vim's extensive symbolic key names.

:vmap                   # Other variants
:xmap
:smap
:omap
:lmap

:unmap lhs              # Remove map
:nunmap                 # Other variants
:vunmap
:xunmap
:sunmap
:ounmap
:unmap!
:iunmap
:lunmap
:cunmap

2.1.1 Пример

Запишите ключ q и закройте редактор, используя символические имена ключей vim .

:nmap q :wq     #  is typed as 4 chars,  as 1.

2.2 vi

:map  lhs rhs    # Map rhs-words to lhs-word for command-mode mappings.
:map! lhs rhs    #                           for insert-mode mappings.
                        # Escape necessary keys in lhs and rhs.
                        # lhs "#n" means function key "n"

:unmap lhs              # Remove map

2.2.1 Пример

Выполните запись клавиши q и выйдите из редактора.

:map q :wq

Ссылки

  1. Документация vim , например: здесь .
  2. Введение в редактирование дисплея с помощью Vi , составленное авторами vi , например: этот PDF-файл .

5
09.01.2016, 11:09
0 ответов

Теги

Похожие вопросы