Установка файла File/exe Autohotkey для эмуляции VIM.
Vim.ahk - это файл настройки для Autohotkey (autohotkey_l).
Vim.exe - это автономное приложение, сделанное из Vim.ahk (доступно на странице релизов).
Это эмуляция VIM для Windows. Если вы заинтересованы в одних и тех же настройках для Mac, попробуйте эмуляцию VIM для Karabiner - программное обеспечение для macOS: Karabiner -Elements Completr_Modifications Rules от rcmdnk.
Этот сценарий для Autohotkey v2.
Если вы используете Autohotkey v1, используйте релиз v0.13.2 (или филиал AHK_V1).
Если вы уже установили Autohotkey, просто откройте Vim.ahk с помощью Autohotkey.
Если вы используете Autohotkey с другим сценарием, вы можете включить его в свой сценарий, используя Autohotkey ... Пожалуйста, скопируйте Vim.ahk и Lib Directory в Users%username%Documents или где находится скрипт, и добавьте следующую строку в Autohotkey.ahk или ваш сценарий:
#Include %A_LineFile%..vim.ahk
В конце раздела автоматического эксплуатации.
Вы также можете использовать vim_ahk.exe , который может работать автономным без автохотки.
Чтобы получить исполняемый файл, перейдите на страницу релизов и загрузите последний zip -файл.
Разируйте файл ZIP и поместите извлеченную папку VIM_AHK, где вам нравится, затем запустите vim_ahk.exe .
Примечание
Поместите папку vim_ahk_icons в одну и ту же папку с vim_ahk.exe , в противном случае функция значка меню лотка не работает.
Клона vim_ahk и перейдите по папке vim_ahk и запустите Build.bat .
.build.bat на PowerShell или командной строке.Вы найдете папку vim_ahk , которая содержит vim_ahk.exe и vim_ahk_icons .
Настройка по умолчанию позволяет Vim-Mode для следующих приложений:
Вы можете изменить их из меню правой кнопкой мыши значка для лотка задач (найти Settings VimMenu -в списке) или запустить окно настройки с помощью Ctrl-Alt-Shift-v .
Если вы хотите изменить приложения непосредственно в скрипте, добавьте переменную VimGroup перед Vim := new VimAhk() в vim.ahk (заголовок/класс окна может быть проверено с помощью Window Spy of Autohotkey) или написать перед включением Vim.ahk
Пример строки:
VimGroup := "ahk_exe chrome.exe,ahk_exe firefox.exe"
Несколько приложений могут быть написаны с помощью запятой.
Примечание
Это будет перезаписать приложения по умолчанию. Если вы хотите добавить эти приложения в приложения по умолчанию, добавьте следующие приложения после ваших приложений:
ahk_exe notepad.exe,ahk_exe explorer.exe,ahk_exe wordpad.exe,ahk_exe TeraPad.exe,作成,Write:,ahk_exe POWERPNT.exe,ahk_exe WINWORD.exe,ahk_exe Evernote.exe,ahk_exe Code.exe,ahk_exe onenote.exe,OneNote,ahk_exe texworks.exe,ahk_exe texstudio.exe
Или вы можете использовать меню параметров GUI, описанное ниже.
Настройка по умолчанию VimSetTitleMatchMode составляет 2, что делает Contain методами.
Если вы установите OneNote , будут включены все окна с заголовком, содержащим OneNote (например, XXX's OneNote ). Если вы установите VimSetTitleMatchMode как 3, будет включено только точное название OneNote .
Это может не работать на OneNote. У OneNote может быть имя окна, как ноутбук пользователя - OneNote , вместо OneNote .
В этом случае вам нужно проверить заголовок окна OneNote с помощью Window Spy.
Window Spy даст вам заголовок, классы и обработки, как:
User's Notebook - OneNote
ahk_class ApplicationFrameWindow
ahk_exe ApplicationFrameHost.exe
Если вы добавите какие -либо из вышеперечисленных строк в Vimgroup, Vim_ahk работает над OneNote. Но если вы установите ahk_class ApplicationFrameWindow или ahk_exe ApplicationFrameHost.exe , VIM_AHK также работает над другими приложениями, которые используют эти имена класса/процесса (большинство приложений, установленных в Microsoft Store).
Примеры приложений:
ahk_exe chrome.exeahk_exe firefox.exeahk_exe EXCEL.EXEahk_exe soffice.bin (для всех заявок на LibreOffice) В дополнение к VimGroup , есть следующие параметры, которые вы можете установить в своем сценарии. Все это также может быть изменено из меню настройки.
| Вариант | Описание | По умолчанию |
|---|---|---|
| Vimescnormal | Если 1, Short Press ESC устанавливает обычный режим, в то время как Long Press ESC отправляет ESC. | 1 |
| Vimsendescnormal | Если 1, короткий нажмите ESC отправьте ESC в обычном режиме. | 0 |
| Vimlongescnormal | Если 1, короткая пресса и длинное нажатие поведения ESC заменяются. | 0 |
| Vimctrlbrackettoesc | Если 1, Ctrl- [ведет себя как ESC. Если vimctrlbracketnormal равно 0, Ctrl- [отправляет ESC. Если vimctrlbracketnormal равно 1, длинная нажатие Ctrl- [отправляет ESC. | 0 |
| Vimctrlbracketnormal | Если 1, нажимать Ctrl- [устанавливает нормальный режим, в то время как долго нажимайте Ctrl- [отправляет Ctrl- [. | 1 |
| Vimsendctrlbracketnormal | Если 1, короткий нажмите Ctrl- [Отправить Ctrl- [в нормальном режиме. | 0 |
| Vimlongctrlbracketnormal | Если 1, короткая пресса и длинная пресса Ctrl- [поведение заменяется. | 0 |
| VimchangeCaretWidth | Если 1, проверьте символ под курсором перед действием. В настоящее время это используется для: a в обычном режиме (проверьте, находится ли курсор в конце линии). | 0 |
| Vimrestoreime | Если 1, статус IME восстанавливается при входе в режим вставки. | 1 |
| Vimjj | Если 1, jj изменяет режим в нормальный режим из режима вставки. | 0 |
| Vimtwoletteresc | Список пар символов, чтобы нажать вместе во время режима вставки, чтобы добраться до нормального режима. Например, значение jf означает нажатие j и f одновременно введите нормальный режим.Многочисленная комбинация может быть установлена по разделению , . (например jf,jk,sd ) | |
| Vimdisableunused | Отключить уровень неиспользованных ключей в отличие от режима вставки:
| 3 |
| Vimsettitlematchmode | SettitLeMatchMode:
| 2 |
| Vimsettitlematchmodefs | SettitLeMatchMode:
| Быстрый |
| Vimiconcheckinterval | Интервал, чтобы проверить статус VIM_AHK (MS) и изменить значок лотка (см. Ниже рисунок). Если он установлен на 0, оригинальный значок AHK установлен и не изменен. | 1000 |
| Вимвербоз | Уровень многослойного:
| 1 |
| Vimapplist | Использование списка заявки:
| Разрешить список |
| Вимгруппа | Приложения на ведьму Vim_ahk включены. | См. Раздел приложений |
Вы можете добавить свои параметры, прежде чем включить Vim.ahk в свой сценарий в разделе «Автоматическое исполнение», например:
VimVerbose := 2
#Include pathtovim.ahk
Если вы хотите изменить их непосредственно в сценарии Vim.ahk, добавьте эту переменную перед Vim := new VimAhk() .
Примечание
Эти переменные VIM будут перезаписать значения по умолчанию и начальные значения. После проверки этих переменных читается файл конфигурации. Если вы уже запустили vim_ahk, был создан файл конфигурации, и все настройки были сохранены. Чтобы отразить новые настройки, попробуйте Reset в окне «Настройка графического интерфейса».
Примечание
Vimiconcheckinterval пример
Если вы установите vimiconcheckinterval как ненулевой, значок лотка изменяется при изменении режима или изменении приложений на включенные Vim_ahk или не включенные.
Предупреждение
VimchangeCaretWidth
Ширина осии может быть изменена только в конкретных приложениях: WordPad, Word или OneNote. На Блокноте или исследователе ширина карета сохраняется, но не меняется.
Для большинства других применений ширина карета сохраняется в качестве исходной ширины.
Когда эта опция включена, текущее окно кратко теряет фокус при изменении режима.
Если вы включили эту опцию и измените толстую ширину оцепенения в нормальном режиме и отключите опцию, ширина курсора сохраняется как толстая. Чтобы обратить вспять ширину осторожности, повторно включите опцию и введите режим вставки в WordPad или что-то в этом роде, чтобы вернуть ширину оцепенения, затем отключите опцию.
Вы можете изменить эти параметры из меню правой кнопкой мыши значка Trape Tray (найти VimMenu - Settings в списке) или запустить окно настройки с помощью Ctrl-Alt-Shift-v .
Здесь вы можете добавить приложения, изменить ключ изменения режима или изменить уровень словеса.
Если вы нажмете Reset , настройки по умолчанию будут показаны в окне. Эти настройки будут включены только в том случае, если вы нажимаете кнопку OK .
Эти настройки по умолчанию перезаписаны вашим параметром VimXXX в вашем скрипте, описанном выше. (IE Reset восстановит ваши параметры в сценарии в дополнение к настройкам по умолчанию VIM_AHK.)
| Ключ | Функция |
|---|---|
| Ctrl-Alt-Shift-V | Запустить окно настройки опции графического интерфейса. |
| Ctrl-Alt-Shift-S | Приостановка/перезапустить vim_ahk. |
| Ctrl-Alt-Shift-C | Показать проверку статуса. (Только в приложениях VimGroup.) |
Вот основные режимы.
| Режим | Описание |
|---|---|
| Вставьте режим | Оригинальное состояние Windows |
| Нормальный режим | Как и в VIM, курсор перемещается hjkl , w и т. Д. ... И доступны некоторые команды, похожие на VIM. |
| Визуальный режим | Есть три визуальных режима: характер, по линейке и блок. Блок визуального режима действителен только для приложений, которые поддерживают блок-выбор (такой Terapad). |
| Командный режим | Можно использовать для сохранения файла/ухода. |
Начальное состояние-это режим вставки, затем ESC или Ctrl-[ приводит вас к нормальному режиму.
В обычном режиме i является ключом к возвращению в режим вставки.
v , V и Ctrl-v являются ключом к символам, по линии и визуальным режимам, соответственно.
После нажатия : доступны несколько команд для сохранения/отказа.
| Ключ/Команды | Функция |
|---|---|
| ESC/CTRL- [ | Введите нормальный режим. Удерживание (0,5 с) Эти клавиши имулируют нормальные ESC/Ctrl- [. |
| JJ | Введите нормальный режим, если включен. |
| Пользовательские две буквы | Если установлено двухбуквенное отображение. |
ESC/CTRL- [выключите IME, если IME включен. ESC действует как ESC, когда IME включен и преобразует инструкции. Ctrl- [выключает IME и входит в обычный режим, даже если IME включен.
Long Press ESC (Ctrl- [) отправит эти оригинальные клавиши, если VimLongEscNormal ( VimLongCtrlBracketNormal не включен (0).
Если включен VimLongEscNormal ( VimLongCtrlBracketNormal ), одно нажатие отправит исходные клавиши, а длинное нажатие изменит режим в нормальный режим.
При использовании пользовательской двухбуквенной горячей клавиши для входа в обычный режим, две буквы должны быть разными.
Предупреждение
Персонаж можно использовать только для одной двухбуквенной горячей клавиши. Если вы указываете ab и bc , ba (сначала толкайте b , а затем a ) не работает. Если вы a подтолкните, то ab будет работать, хотя.
| Ключ/Команды | Функция |
|---|---|
| я/i/a/a/o/o | Введите режим вставки под курсором/началом строки/рядом с курсором/конец строки/следующая строка/предыдущая строка. |
| V/V/Ctrl-V | Введите визуальный режим символов/линейного/блока. |
| : | Введите режим командной строки |
| Ключ/Команды | Функция |
|---|---|
| H/J/K/L. | Слева/вниз/вверх/вправо. |
| 0/$ | Перейдите к началу/концу линии. |
| Ctrl-A/Ctrl-E | Перейдите к началу/концу линии (Emacs, как). |
| ^ | Перейдите к стартовому непрерывному символу линии. |
| w/w | Перейти к началу следующего слова. |
| E/E. | Перейти к концу слова. (На самом деле, перейти к началу следующего слова и переместите одного персонажа влево.) |
| б/б | Перейти к началу предыдущего слова. |
| Ctrl-U/Ctrl-D | Подниматься вверх/вниз по 10 линии. |
| Ctrl-B/Ctrl-F | PAGEUP/PAGEDOWN. |
| Gg/g | Перейдите в верхнюю/нижнюю часть файла |
| Космос | Верно. |
| Входить | Перейти к началу следующей строки. |
Примечание
Введите работы только для приложений редактора (для других, кроме Explorer, Q-DIR, он работает как ввод даже в нормальном режиме).
Кроме того, Repeat также доступно для некоторых команд.
| Пример команд | Действие |
|---|---|
| 4J | Вниз 4 строки |
| 3W | Двигать 3 слова вперед |
| 100 | Вниз по 100 строк |
| Ключ/Команды | Функция |
|---|---|
| yy, y | Скопировать строку. |
| дд | Разрежьте линию. |
| Дюймовый | Вырезать отсюда до конца линии. |
| скандал | Измените строку (введите режим вставки). |
| В | Вырежьте отсюда до конца линии и введите режим вставки. |
| x/x | Удалите символ под/перед курсором (не зарегистрированный в буфер обмена). |
| P/P. | Вставьте в следующее/текущее место. Если Copy/Cut была сделана с помощью линейного визуального режима, он встает на следующую/текущую строку. Некоторые команды (такие YY/DD) также заставляют вставить в качестве линии. |
| yiw/diw/ciw | Копировать/вырезать/изменить текущее слово. |
Команда y/d/c+также может использоваться.
yw -> Скопируйте следующее одно слово.d3w -> Удалить следующие 3 слова.| Ключ/Команды | Функция |
|---|---|
| u/ctrl-r | Отменить/повторно. |
| r/r | Замените один символ/несколько символов. |
| Дж | Объедините две линии. |
| Полем | Это исправлено: Replace the following word with a clipboard (полезно для использования с поиском). |
| ~ | Изменить дело. |
| / | Начальный поиск (окно поиска будет открыт) |
| n/n | Поиск следующий/предыдущий (некоторые приложения поддерживают только следующий поиск) |
| * | Поиск слова под курсором. |
| ZZ/ZQ | Сохраните и брось/брось. |
| Ключ/Команды | Функция |
|---|---|
| ESC/CTRL- [ | Введите нормальный режим. |
| Переместить команду | Большинство команд перемещения в обычном режиме доступны. |
| y/d/x/c | Копировать/вырезать/вырезать/вырезать и вставить ( d = x ) |
| Y/d/x/c | Перейти к концу линии, затем скопируйте/вырезать/вырезать/вырезать и режим вставки ( D = X ) |
| IW | Выберите текущее слово. |
| * | Поиск выбранного слова. |
| Ключ/Команды | Функция |
|---|---|
| ESC/CTRL- [ | Введите нормальный режим. |
| w + return | Сохранять |
| W + пространство | Сохранить как |
| W + Q. | Сохранить и уйти |
| Q. | Покидать |
| час | Открыть помощь приложения |
См. Ranger, который является диспетчера файлов консоли с привязками ключей VI.
| Ключ/Команды | Функция |
|---|---|
| H/J/K/L. | Backspace (возвращается в родительский каталог)/down/up/enter (входит в выбранный каталог или открывает файл) |
| Alt+u/i/j/k | Переключитесь между четырехмоторными директориями |
| ' | Меню быстрое связывание |
Тесты запускаются путем выполнения tests/run_vimahk_tests.ahk . Блокнот и окно VIM открываются, и Vim_ahk запускается.
Используемая система тестирования представляет собой серию тестовых случаев в tests/testcases.txt представляющих нажатия клавиш для отправки в VIM_AHK. Они отправляются в открытые окна VIM и блокнота, и получается полученный текст.
Тесты могут быть очень хлопьями, поэтому должны использоваться в качестве руководства и выполнять пути кода для проверки ошибок. Тесты должны выполняться с помощью дефолта INI.