VIM 에뮬레이션을위한 AutoHotkey의 파일/exe 파일 설정.
vim.ahk는 autohotkey (autohotkey_l)의 설정 파일입니다.
vim.exe는 vim.ahk (릴리스 페이지에서 사용할 수 있음)에서 만든 독립형 응용 프로그램입니다.
이것은 창에 대한 vim 에뮬레이션입니다. MAC의 동일한 설정에 관심이 있으시면 RCMDNK의 MACOS : Karabiner -Elements Complex_Modifications 규칙을위한 Karabiner -Software 용 VIM Emulation을 사용해보십시오.
이 스크립트는 AutoHotkey v2 용입니다.
AutoHotkey V1을 사용하는 경우 릴리스 V0.13.2 (또는 AHK_V1 브랜치)를 사용하십시오.
AutoHotkey를 이미 설치 한 경우 AutoHotkey와 함께 vim.ahk를 열십시오.
다른 스크립트와 함께 AutoHotkey를 실행하는 경우 AutoHotKey Users%username%Documents 사용하여 스크립트에 포함시킬 수 있습니다.
#Include %A_LineFile%..vim.ahk
자동 공인 섹션의 끝에.
autohotkey와 함께 독립형으로 작동 할 수있는 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.exe 및 vim_ahk_icons가 포함 된 vim_ahk 폴더가 있습니다.
기본 설정은 다음 응용 프로그램의 VIM 모드를 활성화합니다.
작업 트레이 아이콘의 마우스 오른쪽 버튼 클릭 메뉴 (목록에서 VimMenu Settings 찾기)에서 변경하거나 Ctrl-Alt-Shift-v 로 설정 창을 시작할 수 있습니다.
스크립트에서 응용 프로그램을 직접 변경하려면 vim 전에 VimGroup 변수를 추가하십시오 Vim := new VimAhk()
예제 라인 :
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 )가 포함 된 제목이 포함 된 모든 Windows가 포함됩니다. VimSetTitleMatchMode 3으로 설정하면 OneNote 의 정확한 제목 만 포함됩니다.
OneNote에서는 작동하지 않을 수 있습니다. OneNote에는 OneNote 대신 OneNote 인 OneNote 와 같은 창 이름이있을 수 있습니다.
이 경우 Window Spy로 OneNote의 창 제목을 확인해야합니다.
Window Spy는 다음과 같은 Window Title, Class 및 프로세스에 대해 제공합니다.
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 인 경우 짧은 프레스 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 인 경우 Long Press Ctrl- [EST를 보냅니다. | 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 ) | |
| vimdisableunued | 삽입 모드 이외의 사용하지 않는 키 레벨 비활성화 :
| 3 |
| VIMSETTITLEMATCHMODE | SettitleMatchMode :
| 2 |
| vimsettitlematchmodefs | SettitleMatchMode :
| 빠른 |
| vimiconcheckinterval | VIM_AHK 상태 (MS)를 확인하고 트레이 아이콘을 변경하는 간격 (아래 그림 참조). 0으로 설정되면 원래 AHK 아이콘이 설정되어 변경되지 않습니다. | 1000 |
| Vimverbose | 장점 수준 :
| 1 |
| vimapplist | 응용 프로그램 목록 사용 :
| 목록을 허용합니다 |
| vimgroup | Witch Vim_ahk의 응용 프로그램이 활성화되었습니다. | 응용 프로그램 섹션을 참조하십시오 |
Auto Execute 섹션의 스크립트에 vim.ahk를 포함시키기 전에 옵션을 추가 할 수 있습니다.
VimVerbose := 2
#Include pathtovim.ahk
vim.ahk 스크립트에서 직접 변경하려면 Vim := new VimAhk() .
메모
이 VIM 변수는 기본값과 초기 값을 덮어 씁니다. 이 변수를 확인한 후 구성 파일을 읽습니다. 이미 vim_ahk를 실행 한 경우 구성 파일이 생성되고 모든 설정이 저장되었습니다. 새 설정을 반영하려면 GUI 옵션 설정 창에서 Reset 시도하십시오.
메모
vimiconcheckinterval 예제
VimiconCheckinterVal을 0이 아닌 것으로 설정하면 모드를 변경하거나 Applications를 VIM_AHK 활성화 또는 활성화하지 않은 응용 프로그램으로 변경하면 트레이 아이콘이 변경됩니다.
경고
vimchangecaretwidth
Caret 너비는 WordPad, Word 또는 OneNote와 같은 특정 응용 프로그램에서만 변경할 수 있습니다. 메모장이나 탐색기에서는 캐럿 너비가 유지되지만 변경되지 않습니다.
대부분의 다른 응용 분야의 경우 간병 너비가 원래 너비로 유지됩니다.
이 옵션이 활성화되면 모드가 변경되면 현재 창이 초점을 잠시 잃습니다.
이 옵션을 활성화하고 일반 모드에서 두껍게 캐럿 너비를 변경하고 옵션을 비활성화하면 커서 너비가 두껍게 유지됩니다. 캐럿 너비를 반전 시키려면 옵션을 다시 활성화하고 WordPad에서 삽입 모드를 입력하거나 Caret 너비를 되돌리게 한 다음 옵션을 비활성화하십시오.
작업 트레이 아이콘의 오른쪽 버튼 클릭 메뉴 (목록에서 VimMenu Settings 찾기)에서 이러한 옵션을 변경하거나 Ctrl-Alt-Shift-v 로 설정 창을 시작할 수 있습니다.
여기서 응용 프로그램을 추가하거나 모드 변경 키를 변경하거나 장방 수준을 변경할 수 있습니다.
Reset 푸시하면 기본 설정이 창에 표시됩니다. 이 설정은 OK 버튼을 누르는 경우에만 활성화됩니다.
이러한 기본 설정은 위에서 설명한 스크립트의 VimXXX 옵션에 의해 덮어 씁니다. ( Reset , vim_ahk의 기본 설정 외에도 스크립트에서 옵션을 복원합니다.)
| 열쇠 | 기능 |
|---|---|
| Ctrl-Alt-Shift-V | GUI 옵션 설정 창을 시작합니다. |
| 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- [ | 일반 모드를 입력하십시오. Holding (0.5s)이 키는 정상 ESC/Ctrl- [. |
| JJ | 활성화 된 경우 일반 모드를 입력하십시오. |
| 커스텀 두 글자 | 2 글자 매핑이 설정된 경우 |
esc/ctrl- [ime가 켜져있는 경우 ime을 끄십시오. ESC는 IME가 켜져 있고 지침을 변환 할 때 ESC 역할을합니다. ctrl- [IME가 켜져 있더라도 IME를 끄고 일반 모드로 들어갑니다.
VimLongEscNormal ( VimLongCtrlBracketNormal 이 활성화되지 않은 경우 (0).
VimLongEscNormal ( VimLongCtrlBracketNormal )이 활성화되면 단일 프레스는 원래 키를 보내고 긴 프레스는 모드를 일반 모드로 변경합니다.
사용자 정의 2 글자 핫키를 사용하여 일반 모드에 들어가는 경우 두 글자는 달라야합니다.
경고
캐릭터는 하나의 2 글자 핫키에만 사용할 수 있습니다. ab 와 bc 지정하면 ba (먼저 푸시 b 및 a )가 작동하지 않습니다. a 밀면 ab 작동합니다.
| 키/명령 | 기능 |
|---|---|
| I/I/A/A/O/O | 라인의 커서/시작/줄의 커서/끝/다음 줄/이전 줄 옆에 삽입 모드를 입력하십시오. |
| v/v/ctrl-v | 문자 별/라인별/블록으로의 시각적 모드를 입력하십시오. |
| : | 명령 줄 모드를 입력하십시오 |
| 키/명령 | 기능 |
|---|---|
| H/J/K/L | 왼쪽/다운/up/오른쪽. |
| 0/$ | 라인의 시작/끝으로 이동하십시오. |
| Ctrl-A/Ctrl-e | 라인의 시작/끝으로 이동하십시오 (EMACS Like). |
| ^ | 라인의 시작이 아닌 스페이스 문자로 이동하십시오. |
| w/w | 다음 단어의 시작 부분으로 이동하십시오. |
| e/e | 단어의 끝으로 이동하십시오. (실제로, 다음 단어의 시작으로 이동하여 한 캐릭터를 떠나십시오.) |
| b/b | 이전 단어의 시작 부분으로 이동하십시오. |
| Ctrl-U/Ctrl-D | 10 줄을 위/아래로 이동하십시오. |
| Ctrl-B/Ctrl-F | Pageup/Pagedown. |
| gg/g | 파일의 상단/하단으로 이동하십시오 |
| 공간 | 오른쪽. |
| 입력하다 | 다음 줄의 시작 부분으로 이동하십시오. |
메모
Enter Enter는 편집기 응용 프로그램에 대해서만 작동합니다 (Explorer, Q-DIR 이외의 경우 일반 모드에서도 Enter로 작동 함).
또한 일부 명령에 대해서도 Repeat 사용할 수 있습니다.
| 예제 명령 | 행동 |
|---|---|
| 4J | 4 줄 아래 |
| 3W | 3 단어를 앞으로 움직입니다 |
| 100J | 아래로 100 줄 |
| 키/명령 | 기능 |
|---|---|
| yy, y | 라인을 복사하십시오. |
| DD | 줄을 자릅니다. |
| 디 | 여기에서 줄의 끝까지 자릅니다. |
| CC | 라인을 변경합니다 (삽입 모드를 입력하십시오). |
| 기음 | 여기에서 선의 끝까지 자르고 삽입 모드로 들어갑니다. |
| 더블 엑스 | 커서 아래/이전에 문자를 삭제합니다 (클립 보드에 등록되지 않음). |
| p/p | 다음/현재 장소에 붙여 넣습니다. 라인별 비주얼 모드로 카피/컷이 완료되면 다음/현재 선으로 가득합니다. 일부 명령 (YY/DD)도 라인별로 붙여 넣습니다. |
| yiw/diw/ciw | 복사/컷/변경 현재 단어. |
Y/D/C+이동 명령도 사용할 수 있습니다.
yw > 다음 단어를 복사하십시오.d3w > 다음 3 단어를 삭제합니다.| 키/명령 | 기능 |
|---|---|
| u/ctrl-r | 실행 취소/다시. |
| r/r | 하나의 문자/여러 문자를 교체합니다. |
| J. | 두 줄을 결합하십시오. |
| . | 해야 할 일이 고정되어 있습니다. 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 + 반환 | 구하다 |
| W + 공간 | AS를 저장하십시오 |
| W + Q | 저장하고 종료하십시오 |
| 큐 | 그만두다 |
| 시간 | 응용 프로그램의 공개 도움 |
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 에서 일련의 테스트 사례입니다 .TXT 키 스트로크를 나타내는 vim_ahk로 보낼 수 있습니다. 이들은 Open VIM 및 메모장 창으로 전송되며 결과 텍스트를 비교합니다.
테스트는 매우 풍부 할 수 있으므로 가이드로 사용하고 오류를 확인하기 위해 코드 경로를 실행해야합니다. 기본 INI로 테스트를 실행해야합니다.