경쟁 프로그래밍을 위한 Vim
소개하다.
Vim은 경쟁 프로그래밍에 사용할 때 괜찮은 텍스트 편집기입니다.어쨌든, 너는 그것을 좋아하거나, 코드를 작성할 때마다 많은 시간을 낭비하기 때문에 그것을 버릴 수 있다.단, 관건적인 귀속과 플러그인을 포함한 떳떳한 설정을 하면 Vim을 사용하는 속도를 높일 수 있습니다.나는 개인적으로 처음부터 그것을 사용한 적이 있는데, 지금까지 조금도 후회하지 않는다.이것은 완벽하고 유쾌한 경험이었다.나는 CP 여행에서 C++를 사용한 적이 있다. C++도 매우 유사하지만, C++는 더 많은 라이브러리 지원이 있어 상대적으로 쓰기가 쉽다.
초반에는 빔을 이용한 CP가 도전적이지만 일치만 유지하면 반대편에서 이채를 띠게 된다.여기서, 나는 경쟁 프로그래밍의 작업 절차를 강화하기 위해 Vim에 포함된 빠른 키 연결과 플러그인을 제공할 것이다.
빠른 템플릿 코드
우선, 템플릿 코드를 위한 키 귀속을 만듭니다.작성해야 할 코드에 키를 비추기만 하면 됩니다. 이 코드들은 Vim 명령과 통합됩니다.
C++
nnoremap cpf i#include<iostream><Esc>ousing namespace std;<Esc>o<CR>int main(){<Esc>o<Esc>oreturn 0;<Esc>o}<Esc>kki
C:nnoremap cp i#include<stdio.h><Esc>o<CR>int main(void){<Esc>o<Esc>oreturn 0;<Esc>o}<Esc>kki
Java의 경우:nnoremap <C-j> iclass <ESC>"%pxxxxxa {<ESC>opublic static void main(String args[]){<Esc>o<Esc>o}<Esc>o}<Esc>kki<Tab><Tab>
이제 프로그래밍 언어를 위한 매크로를 만들 수 있습니다.파이썬은 템플릿 코드가 있어도 C/C++/Java/등과 비교하면 매우 작다고 생각하지 않습니다. 이 코드를 키 맵에 포함할 수 있습니다.지도를 설명해 드릴게요.자바 예시를 보십시오.
nnoremap
는 맵 명령으로 비귀속과 맵 모드 등 속성을 가지고 있습니다.이런 상황에서 n
는 정상적인 모드의 비귀속 행위를 대표한다. 즉, 비귀속은 정상적인 모드에서 촉발하고 nore
는 비귀속 행위를 대표한다.더 읽으면 나Vim-keymapping Guide의 글을 읽을 수 있다.지도 자체는 좌우 두 부분으로 마치 집행할 키와 명령의 지도 같다.어떤 키든지 터치할 수 있습니다. 저는 Ctrl + J 또는 <C-j>
를 사용해서 지도를 활성화했습니다.이 명령은 매우 길지만, 우리는 그것을 더욱 작은 블록으로 분해할 것이다.i
부터 우리는 삽입 모드에 들어갔다. 우리는class를 입력하고 <ESC>
키를 눌렀다. 이것은 자바의 클래스 이름을 처리하는 특수한 기술이다. 왜냐하면 이것은 파일 자체의 이름이기 때문이다.우리는 %
레지스터를 사용하여 현재 파일의 전체 이름 (확장자) 을 복사하기 때문에 .java
부분을 삭제해야 합니다. 그러면 a를 누르고 커서 앞에 있는 삽입 모드로 들어가면, 다섯 개의 x를 보고 삭제할 수 있습니다.그리고 클래스 삽입 {
을 위해 다시 escape를 누르면 정상 모드로 돌아갑니다.o
를 입력하여 삽입 모드에 들어가서 다음 줄에 들어가고 public static void main(String args[])
를 입력한다. 이것은 전의와 다음 줄에 들어가는 것과 같다.kk
를 클릭하여 위로 두 번 이동하고 i
를 사용하여 삽입 모드에 들어가고tab을 두 번 클릭하면 정확한 축소를 얻을 수 있습니다.키를 통해 실행 코드 바인딩
템플릿 코드를 처리한 후에는 Vim에서 코드 파일을 구축하고 실행할 수 있습니다.Vim에서 코드를 자동으로 컴파일하고 실행할 수 있도록 사용자 정의 키 연결을 더 추가할 수 있습니다.
우리는
!
Vim의 언어에 컴파일러나 해석기 컴파일러 코드를 사용할 수 있습니다. 이것은 터미널에서 온 명령을 실행하고 %
즉 현재 파일 이름, 출력 파일 %:r
, 즉 C/C++/자바에서 확장자가 없는 현재 파일 이름을 전송합니다.컴파일->
c++ hello.cpp -o hello
Windows에서 실행->%:r
및./%:r
Linux/macOS용우리는
&&
이 두 명령 (compile and run) 을 사용하여 내용을 더욱 뚜렷하고 치밀하게 했다.C++
nnoremap cpp :!c++ % -o %:r && %:r<CR>
C 에 대해nnoremap c, :!gcc % -o %:r && %:r<CR>
Java의 경우nnoremap ,j :!javac % && java %:r<CR>
Python의 경우nnoremap py :python %<CR>
마찬가지로, 사용자가 사용하는 모든 프로그래밍 언어에 적용할 수 있습니다.또한 Linux와 Windows에서 코드를 컴파일하는 데는 약간의 차이가 있을 수 있으므로 어느 운영체제에서 어떤 명령을 사용하는지 주의하십시오.위의gif는 이 명령과 키를 어떻게 사용하여 프로세스를 실행하고 구축하는 작업 흐름을 더욱 쉽고 원활하게 하는지 보여 줍니다.
터미널을 열고 코드를 컴파일하고 실행합니다
우리는 터미널을 사용하여 코드를 컴파일하고 실행할 수 있다. 만약 당신도 이렇게 하기를 원한다면.Vim은 매우 좋은 터미널 편집기입니다. Vim에서 터미널을 열 수 있습니다.
:term
를 입력하여 기본 끝을 수평으로 분할할 수 있습니다.터미널/케이스 이름을 현시적으로 입력해서 열 수 있습니다. 예를 들어 :term bash
bash 열기, :term powershell
PowerShell 열기, :term zsh
zsh 열기 등입니다.이것은vim가 제공하는 매우 좋은 실용 프로그램이다.<C-w>
또는 Ctrl+W를 두 번 사용하여 창 사이를 전환하거나 HJKL 키와 <C-w>
를 사용하여 쉽게 이동할 수 있습니다.Vim 및 통합 터미널에 대한 자세한 내용은 this article를 참조하십시오.이제 터미널 세계를 탐색하고 명령을 실행할 수 있습니다.
플러그 인
Vim에 대해 말하자면, 많은 플러그인은 당신이 상상할 수 있고 상상할 수 없는 모든 것을 위해 설계된 것이다.플러그인 관리자를 사용하여 이 플러그인을 관리하거나 수동으로 관리할 수 있습니다.세 개의 유명한 플러그인 관리자 중 하나를 선택할 수 있습니다. 예를 들어
Vim-Plug
, Vundle
또는 Pathogen
.이 플러그인 관리자를 사용하면 다음과 같은 유용한 플러그인을 설치할 수 있습니다.
책벌레나무
NERDTree는 초보자나 경쟁적인 프로그래밍에 종사하는 사람들에게 좋은 플러그인이다. 왜냐하면 시간도 절약되기 때문이다.GitHub 문서에서 NERDTree 플러그인을 설치할 수 있습니다.NERDTree 플러그인 구성에 대한 자세한 내용은 this article에서 확인할 수 있습니다.이 플러그인은 현재 디렉터리의 파일과 폴더 구조를 도형으로 표시할 수 있습니다.위의 기사에서 제공한 사용자 정의 설정을 사용하여 자동 리셋 및 자동 켜기/끄기까지 기능을 확장할 수 있습니다.
설치와 설정 후 기본적으로 명령
:NERDTree
을 사용하여 NERDTree를 열 수 있습니다.원하는 대로 사용할 수 있도록 키 귀속과 단축키를 만들 수 있습니다.자동 완성 및 LSP
경쟁적인 프로그래밍과 관련이 있을 때, 자동 완성은 매우 중요하다. 왜냐하면 당신이 알고 있는 것에 있어서 시간을 절약하고, 응용 프로그램이 당신을 위해 그것을 처리하도록 해야 하기 때문이다.우리는 이 특정 임무의 LSP가 있는 자동 플러그인도 있습니다.LSP는 자동 완성에 대한 보다 정확한 예측을 제공할 수 있을 정도로 훌륭합니다.LSPunofficial plugin for vim를 통해 자세한 내용을 확인할 수 있습니다.
일반적인 플러그인, 예를 들어AuotoComplPop도 괜찮고 초보자 체험을 제공할 수 있습니다.
경쟁적인 프로그래밍은 너무 많은 플러그인을 필요로 하지 않고 일부 자동 완성과 파일 시스템이 있는 좋은 인터페이스만 있으면 기본 설정을 할 수 있다. 그러나 이것은 목적이 아니다. 너는 자신의 수요와 기능에 따라 확장할 수 있다.Vim은 사용자 정의에 매우 뛰어납니다.
이와 같이 C++에 대해 저는 키맵의 사용을 보여 주었고 Vim 내부 단말기의 사용도 보여 주었습니다. 이것은 완벽한 체험으로 선택과 선호에 따라 단말기를 집적하고 사용할 수 있습니다.
결론
따라서 본고에서 우리는 서로 다른 언어의 사용자 정의 키 맵과 플러그인을 추가하여 경쟁적인 프로그래밍에 Vim을 설정할 수 있다.이것은 완전한 안내서가 아니다. 나는 여기에 모든 언어의 설정을 포함할 수 없다. 물론, 댓글, GitHub, 트위터, 메일에서 언제든지 나에게 물어볼 수 있다. 나는Vim에서 프로그래밍 언어를 설정할 수 있다.읽어주셔서 감사합니다.
즐거움의 활력과 즐거움의 코딩:)
Reference
이 문제에 관하여(경쟁 프로그래밍을 위한 Vim), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mr_destructive/vim-for-competitive-programming-3ai8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)