(터미널 기반) vim에서 메뉴를 작성하고 사용할 수 있습니까?


18

주로 Windows 기반 회사의 개발자를 위해 가상화 된 Linux 상자 (로컬 개발 서버)를 설정하고 있으며 일부 개발자는 vim에 대해 부정적인 균열을 겪고 있습니다. (어떻게 든 Linux / Unix를 나타내는 것으로 보이며 환경이 사용하기가 매우 어렵다는 것을 증명합니다.) vim을 처음 사용했을 때 (sysadmins는 emacs 설치를 거부했습니다!)와 어려운 초기를 기억합니다. 학습 곡선, 그래서 나는 다소 동정심입니다. 나는 그들에게 nano(아마도 결코 지나치지 않을 것입니다) 소개하기보다는 vim에서 나노와 같은 메뉴를 설정하여 전환을 쉽게 할 수 있다는 것을 알게되었습니다. (매우 초보자에게 친숙한 .vimrc 파일을 제공하지만 나노 스타일 메뉴는 없습니다.)

유일한 문제는 내가 vim (gvim 아님)에서 메뉴를 설정할 수 있다고 주장 할 수 있다는 유일한 발견입니다. 문제를 해결하려는 시도는 나에게 또 다른 문제를 남겼습니다. 많은 시간을 허비하기 전에 실제로 가능한지 알고 싶습니다. 그 방법에 대한 정보가 거의없는 것 같습니다.


3
이제 이것은 Vim 도움말에 :h console-menus있습니다.
Alexey

@Alexey : 감사합니다! 알아두면 매우 도움이됩니다 ... "5.2 새 메뉴 만들기"섹션으로 스크롤하면 원하는 작업을 수행하는 것처럼 보입니다.
iconoclast

답변:


18

네 가능합니다. menu.vim(기본 gvim 메뉴 정의)를 로드 하거나 처음부터 시작하여 직접 만든 다음을 통해 액세스 할 수 있습니다 :emenu. 그래도 나노처럼 항상 보이는 메뉴는 제공하지 않습니다. 명령 줄 탭 완성을 사용하여 메뉴를 탐색 할 수 있습니다.

사용자에게 vimrc가없는 경우 vi 호환성을 비활성화하여 시작하십시오.

:set nocompatible

스마트 명령 줄 완료 활성화 <Tab>(수 있도록 가능한 모든 선택 사항을 나열와 함께 결과를 탐색을 <Up>, <Down>, <Left>, <Right>,과 <Enter>) :

:set wildmenu

모든 일치하는 선택 사이에서 반복되는 프레스주기를 만듭니다.

:set wildmode=full

기본 메뉴를로드합니다 (gvim에서는 자동으로 발생하지만 터미널 vim에서는 발생하지 않습니다).

:source $VIMRUNTIME/menu.vim

이 네 가지 명령을 수행 한 후에는 :emenu명령에서 탭 완성을 호출하여 메뉴 완성을 수동으로 트리거 할 수 있습니다:emenu<space><tab>

탭 키와 화살표 키 및 Enter 키를 사용하여 결과를 탐색 할 수 있습니다 (하위 메뉴를 펼치고 항목을 선택합니다). 그런 다음 한 단계 더 나아가 매핑을 바인딩하여 :emenu매번 입력하지 않아도 메뉴가 팝업되도록하여 더 편리하게 만들 수 있습니다 .

<Tab>명령 행에서 대화식으로 누르는 것처럼 맵핑에서 Ctrl-Z를 작동 시키십시오.

:set wildcharm=<C-Z>

그리고 자동으로 :emenu완성을 호출하는 바인딩을 만듭니다 .

:map <F4> :emenu <C-Z>

2
훌륭한! 내가 맥주를 사줄 수있는 방법을 알려주세요!
iconoclast

2

사용중인 플러그인에 대한 모든 명령과 키 조합을 기억할 수 없다는 문제가 있습니다. 또한 새로운 키 매핑을 설정하거나 명령에 액세스하지 않고도 명령을 빠르게 실행할 수있는 간단한 방법을 원했습니다.

Vim-Venu

vim으로 편집 할 수있는 각 파일 유형에 대한 메뉴를 정의 할 수 있는 작은 vim 메뉴 플러그인 을 작성했습니다 . 이렇게하면 다른 파일 형식에 대해 메뉴 옵션 '컴파일'을 정의하고 편집중인 파일 (.py, .c, .c ++, ...)에 따라 코드를 컴파일하기위한 올바른 지침을 시작할 수 있습니다. 또는 마크 다운 파일에서 '테이블'플러그인 명령에 대한 하위 메뉴를 작성하십시오.

여기에서 확인하십시오 : https://github.com/Timoses/vim-venu

참고로 : 나는 모두가 자신이 좋아하는 텍스트 편집기를 선택해야한다고 생각합니다. Vim에는 약간의 장벽이 있습니다 (배워야 할 가치가 있습니다!). 누군가 배우려고하지 않는다면, vim은 그 사람에게별로 쓸모가 없을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.