cdo를 사용하도록 vim을 조정하고 싶습니다(기후 데이터 운영자) 효율적인. (bash) 스크립트에서 cdo를 사용해야 하기 때문에 작은 설명(아직 검색 중!)과 함께 자동 완성 일치 항목(구현됨!)을 추가하고 싶었습니다.
환경을 설정했는데 기본 수준에서 실행되고 있습니다. 이제 일치하는 사전 키워드의 오른쪽 팝업 메뉴 출력을 조작할 수 있는지 궁금합니다.
지금까지 간단한 키워드 일치가 있었습니다. 아래를 참조하세요.
다음 설정을 사용하십시오.
내 .vimrc:
set completeopt=longest,menuone
주로 cdo.dic와 같은 다양한 사전이 포함되어 있습니다: ~/.vim/ftDetect/cdo.vim:
au BufRead,BufNewFile *.sh set dictionary+=~/.vim/dictionary/cdo.dic au BufRead,BufNewFile *.sh set dictionary+=~/.vim/dictionary/hamocc.dic au BufRead,BufNewFile *.sh set dictionary+=~/.vim/dictionary/mpiom.dic
내 사전 파일 ~/.vim/dictionary/cdo.dic: 다음과 일치합니다.
abs -abs \
adisit -adisit \
...약 700개 이상...
표적: 내가 얻고 싶은 출력은 사전 파일의 파일 경로가 아니라 오른쪽에 표시된 작은 설명입니다. 따라서 연산자에 대한 간단한 설명을 갖는 것이 더 좋습니다(어쩌면 연산자 다음에 사전 파일에 저장될 수도 있습니까?). 설명 목적으로
selcode : Select parameters by code number {selcode,code ifile ofile}
사전에서 행을 읽습니다.
selcode -selcode {Select parameters by code number [selcode,code ifile ofile]}\
그래서 기본적으로 저는 많은 프로그래밍이나 다른 외부 도구 플러그인을 사용하지 않고도 빠른 찾기 도구를 사용하여 연산자 이름과 간단한 설명을 찾습니다. 그래서 "가능한가, 어떻게?"라는 질문인데...
지금까지 나는 vim 문서와 vim, Dictionary, Complete, Completeopt, pmenu 등을 검색해 보았습니다.
귀하의 조언에 감사드립니다.
답변1
(Vim의 소스 코드를 직접 변경하지 않는 한) 사전 완성의 컨텍스트에 영향을 미칠 수 없습니다.
그러나 Vim은 사용자 정의 완성을 구현하는 기능을 제공합니다. 여기에서 모든 관련 정보와 예시를 찾을 수 있습니다 :help complete-functions
. 이렇게 하면 컨텍스트( menu
, cp. 라는 이름 :help complete-items
)에 대한 모든 권한을 갖게 됩니다.
사전 파일을 소스로 계속 사용할 수 있습니다. 파일을 읽고(예: 를 통해 readfile()
) 비트를 구문 분석하거나( matchlist()
) 사용자 지정 완성 기능을 구현하는 Vim 스크립트에서 사전 항목을 Vim 목록으로 직접 정의해야 합니다. .
답변2
이 문제를 발견한 후 플러그인을 작성하게 되었습니다.
https://github.com/jsit/vim-customcpt
Ingo Karkat의 승인된 답변에 대한 응답으로 구축된 aaron.spring 플러그인으로 구축되었지만 임의의 json 파일을 자동 완성 "사전"으로 허용합니다.