2012-01-10 5 views
4

나는 /etc/apache2/sites-available/www.example.com에서 아파치 파일이있는 경우와 그 기능은 무엇입니까 그래서vim에서 파일 유형을 변경하면 정확히 무엇이 발생합니까?

:set filetype=apache 

처럼 그 파일 형식을 설정? 그러면 파일이 변경됩니까? vim의 인스턴스에만 반영됩니까? vim의 세션? 수동으로 파일 형식을 설정할 수 있지만 vim은 내가 읽기 전용 모드라는 것을 경고합니다 (/etc/apache2은 루트 액세스가 필요합니다). vim을 루트 권한으로 여는 경우 경고 메시지가 표시되지 않지만 나가거나 다시 열면 (정상 또는 루트로) 파일 형식이 사라집니다. 적어도 같은 세션 파일에서 호출 할 때 더 영구적으로 만들 수 있습니까?

답변

3

set filetype은 모든 FileType 자동 명령을 호출하여 vim이 파일을 처리하는 방식을 변경합니다. 그것은 지속되지 않습니다. 당신은 항상 filetype=apache으로 해당 파일을 열려면, 당신 .vimrc이 점을 추가해보십시오 :

au BufRead,BufNewFile /etc/apache2/sites-available/www.example.com set filetype=apache 

당신이 그것에 대해 자세한 내용을보실 수 있습니다 :

:help 'filetype' 
:help filetypes 
:help :autocmd 
:help .vimrc 

편집 :/usr/share/vim/vim73/filetype.vim에서 발견 :

au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') 
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf*  call s:StarSetf('apache') 

s:StarSetf 것이다 setfiletype-filetype이 무시 된 패턴과 일치하지 않으면입니다. 내 시스템에서 :echo g:ft_ignore_pat은 아카이브 파일 확장명 만 무시 된 것으로 표시합니다. setfiletypeset filetype이지만 한 번만 사용합니다.

적어도 내 시스템에서는 */etc/apache2/sites-*/* 패턴이 파일 이름을 찾아 apache 파일로 만듭니다.

+0

부당하게 커질 수있는 아주 나쁜 해결책 인 것 같습니다. – puk

+0

vim은 확장 패턴을 사용하여 다수의 파일을 자동으로 여는 방법을 알고 있습니다. 특히,'/ etc/apache2 '에있는'.conf' 파일들은 자동적으로'filetype = apache'로 할당됩니다. '/ etc/apache2/sites-available/*'에 대해 포괄적 인 패턴을 만들 수도 있습니다. 그렇지 않으면 ... 잘, 힘든. – Amadan

+0

이제'/ etc/apache2/sites-available/*'는 기본적으로'filetype = apache'로 기본 설정되어야합니다 ... – Amadan

0

기본적으로 filetype은 '파일 유형'에 대한 설정을 변경하도록합니다. 파일 형식을 변경하면 FileType 범주에 대한 자동 명령이 실행됩니다. FileType에 대한 자동 명령이 파일에 적용 가능하면 파일을 변경할 수 있습니다 (일반적으로 플러그인 개발자는 파일 내용이 아닌 강조 표시에 영향을주는 r/o 유형 변경에 사용합니다).

당신은 파일 형식이 파일과 일 처리되어 설정하면 파일 유형 autocommands 다음 명령을 실행하여 존재하는 것을 볼 수 있다는 걱정하는 경우 : 당신이 뭔가를 넣을 수 있습니다 아파치 파일 형식으로 설정하려면 아파치 파일을

:au FileType 

을 ~/.vimrc에 다음과 같이 입력하십시오 :

:au BufRead /etc/apache2/sites-available/* set ft=apache 
+0

vim 세션 파일이 파일 유형을 저장하기에 충분히 똑똑하기를 바랬습니다. – puk

관련 문제