.vimrc에서`set nocompatible`은 완전히 쓸모가 없습니까?
이 서사시적인 질문의 여러 사용자가 다음을 입력했습니다 .vimrc
.
" Necesary for lots of cool vim things
set nocompatible
하지만 정말 필요한가요? 문서에서 :
'compatible' 'cp'
boolean (default on, off when a |vimrc| or |gvimrc| file is found)
경우 set nocompatible
A의 것입니다 .vimrc
하는 것을 의미 .vimrc
파일이 존재하는, 겉으로는 무의미하게.
시스템 전체 vimrc 인 경우이 옵션은 꺼지지 않습니다. 따라서 시스템 전체의 vimrc를 변경하고 원하는 경우이를 설정해야합니다.
문서 섹션 * compatible-default *에서 (강조 내) :
Vim이 시작되면 '호환'옵션이 켜집니다. 이것은 Vim이 초기화를 시작할 때 사용됩니다. 그러나 사용자 vimrc 파일이 발견되거나 현재 디렉토리 에 vimrc 파일이 있거나 "VIMINIT"환경 변수가 설정되는 즉시 'nocompatible'으로 설정됩니다.
또 다른 차이점은 명시 적으로 '호환되지 않음'을 설정하면 -C 플래그로 vim을 호출하는 것을 무시한다는 것 입니다.
다른 시나리오에서는 vimrc에서 '호환되지 않음'을 설정하는 것은 멍청이입니다.
결국 나는 그것이 "미안한 것보다 더 안전한"문제라고 생각한다.
많은 사람들이 자신의 .vimrc 파일을 GitHub에서 공유하고 있으며 저는 가끔 내 .vimrc 파일을 바꾸지 않고 설정을 테스트 할 것입니다. vim을 사용하면 -u 플래그로이를 수행 할 수 있습니다.
vim -u test_vimrc
vim ": help nocompatible"에서
(참고 : 이는 시스템 전체의 vimrc 또는 gvimrc 파일이나 | -u | 인수로 지정된 파일에 대해서는 발생하지 않습니다.)
즉, .vimrc를 다른 사람과 공유하고 다른 사람이 -u 플래그를 사용하여 파일을로드하면 vim이 파일 이름이 .vimrc이고 홈 디렉토리에있는 것처럼 구성되지 않습니다.
Windows VM의 Cygwin에서 vim을 사용하고 있었고 삽입 모드에있을 때마다 화살표 키를 누르면 vim이 스크롤하는 대신 화면에 "A", "B", "C"또는 "D"를 인쇄합니다. vim을 호환되지 않는 모드로 설정하면 문제가 해결된다는 포럼을 찾았습니다. 고맙게도 그랬습니다.
~ / .vimrc 파일에 "set nocompatible"을 입력했는데 문제가 사라졌습니다. 그래서 아마도 100 % 쓸모없는 것은 아닙니다.
Johnny가 위에서 지적한 바에 따르면, 나는 방금 이것을 발견했을 때 놀랐습니다.
$ cat /usr/share/vim/vimrc.tiny
" Debian system-wide default configuration Vim
set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
set compatible
아아 !!!
아니 나는 그것을 기대하지 않았다. Debian (또는 Debian Unstable 일명 Ubuntu)은 실제로 set compatible 으로 기본 설정을 재정 의하여 사용자에게 악몽을 꾸고 있습니다. 나는 당신이 FreeBSD의에서 오는 때, 당신이해야 할 첫 번째 일은이를 바꾸어 시스템 전체 설정을 무시 왜 당신이 지금 알고 있기를 바랍니다 set nocompatible
당신의 자신에 ~/.vimrc
. 그렇지 않으면 익숙한 방식으로 커서를 이동할 수있는 대신 문자를 생성하기 때문입니다.
나는 이것이 끔찍한 생각이라고 생각합니다. 즉,이 set compatible
줄 은 데비안과 우분투 의 시스템 전체 에서 제거 되어야합니다 vimrc.tiny
. 커서 키를 작동시키는 방법을 아는 것만 큼 (아직) 똑똑하지 않은 새 사용자를 괴롭히기 때문입니다. nano
완전히 무의미한 차단제 때문에 그들 과 다른 사람들 에게 강요하는 것은 이와 같은 것입니다!
이 변경 사항을 데비안의 시스템 전체 리소스 파일에 전파 한 사람과 정말 이야기하고 싶습니다. 그리고 그의 변화를 최대한 인정한 사람들에게도 마찬가지 일 것입니다.
Johnny가 맞습니다 : 개인 PC에서 시스템 전체 .vimrc (있는 경우)에서 해당 줄을 제거하고 $ HOME의 빈 .vimrc를 터치 할 수 있습니다 . 지적 해주셔서 감사합니다. 참고 해당이 있어야합니다 ~/.vimrc
, 그렇지 않으면 당신은없이 커서를 사용할 수 없습니다로 (심지어 비어있는 경우!) 를 명시 적 으로 퍼팅 set nocompatible
.
참고 URL : https://stackoverflow.com/questions/5845557/in-a-vimrc-is-set-nocompatible-completely-useless
'Development Tip' 카테고리의 다른 글
동일한 이름을 가진 두 개의 입력 요소를 갖는 것이 유효합니까? (0) | 2020.11.05 |
---|---|
Java를 네이티브 코드로 컴파일 할 수 있습니까? (0) | 2020.11.05 |
github 프로젝트에서 바이너리를 배포하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.05 |
"이벤트 이미 터"란 무엇입니까? (0) | 2020.11.05 |
PHP의 연결 풀링 (0) | 2020.11.05 |