답변:
우리의 CTO는 GitHub에서 기능이 가득한 Vim 구성을 가지고 있습니다 .
하이라이트:
시스템 관리 도구가 Ruby로 작성 되었기 때문에 Ruby 코딩에 유용합니다.
먼저, 여러 대의 컴퓨터를 사용하는 경우 ~/.vim/
, ~/.vimrc
및 기타 유용한 구성 파일 ( screen
, 셸 등)을 개정 관리 시스템에 넣는 것을 고려하십시오 . 나는 darcs
데비안 시스템에서 저렴하고 (하스켈 컴파일러를 설치할 필요가없고, 패키지를 직접 설치할 필요가있다) 분산되어 있으며 훌륭한 대화식 모드를 가지고있다. 당신이 알고 / 좋아한다면 git
, 당신은 또한 그것을 고수 할 수 있습니다.
현재 설정 파일은 darcs 저장소에서 사용할 수 있습니다 http://repo.harnir.net/
. 내가 ~/.vimrc
따르는 몇 가지 구체적인 예 . 죄송합니다. 새로운 사용자이므로 스크립트에 대한 링크가 없습니다 http://vim.org/
.
원격 파일을 편집 할 때 백업 스크립트는 필수입니다. cbackup.vim 스크립트를 사용 합니다.이 스크립트는 편집 한 각 파일의 마지막 10 개 사본을 중앙 디렉토리에 유지하고 이전 파일을 자동으로 제거합니다. ~/.vim/plugins/
디렉토리에 넣고 잊어 버리십시오.
작업 목록을 빠르게 검색 할 수 있습니다 FIXME
, XXX
그리고 TODO
현재 파일의 태그, 그들을 표시하고 하나의 키 누르기와 태그로 이동합니다. 이 태그를 사용하는 경우이 태그를 설치하십시오
dbext 는 모든 DBA에 필수적이며 데이터베이스 작업을하는 프로그래머에게도 유용합니다. 쿼리를 실행하고 데이터베이스의 구조를 확인하고 그 밖의 것들을 살펴 봅시다. 그것은 본질적으로 같은 도구를위한 프론트 엔드 인 mysql
, sqlite3
, sqlplus
등이있다. 데이터베이스로 작업하는 경우 필수입니다!
나는 많은 유용한 구문을 야생에서 보지 못했다 .sysadmins가 작업하는 대부분의 파일은 구성이며 /etc
일반적으로 꽤 강조 표시되어있다. 내 CSS~/.vim/syntax/
는 현재 CSS 색상에 대한 구문을 가지고 있습니다 (웹 개발자에게도 좋습니다). 나머지가 잘 작성되지 않았으므로 여가 시간에 업데이트 할 것입니다. 추가 구문 파일은 dhcpd.conf , / etc / network / interfaces , nginx 구성 파일 및 SpamAssassin 의 local.cf입니다.
구문과 함께 유용한 팁 : 구성 파일이 인식되지 않는 경우 (예 : 이상한 이름 /etc/apache2/sites-enabled/some.domain.com
이있는 경우 .conf
) 파일 이름에 올바른 확장자를 추가하거나 (이 경우 ) ViM 모델을 끝에 추가 할 수 있습니다.
vim : filetype = 아파치
대부분의 구성 옵션은 다음과 같이 매우 인기가 있습니다 set nocompatible ruler
. 매우 좋은 옵션은 다음과 같습니다.
set gdefault
: g
모드를 반전시킵니다 s///g
-해당 옵션 /g
이 기본적으로 사용되므로 매번 추가 할 필요가 없습니다. 끄려면 추가하십시오.
set incsearch ignorecase smartcase hlsearch
: 파일을 검색하는 데 필수-증분, 실시간으로 일치 항목 표시, 대문자를 사용하지 않으면 검색시 대소 문자를 무시합니다.
set pastetoggle=<F6>
: 또는 원하는 다른 키 paste
, nopaste
모드 간 전환 , ServerFault와 같은 웹 페이지에서 무언가를 복사하여 붙여 넣을 경우 필수 :-)
set noerrorbells visualbell t_vb=
: 무언가를 할 때마다 성가신 종이나 시각적 종을 제거하십시오.)
사용자 이름과 현재 날짜를 파일에 붙여 넣습니다. 팀에서 작업 할 때 파일에서 변경 한 사람에 대한 의견을 추가 할 때 유용합니다. 그냥 쓰고 xxsig
스페이스를 누르면 다음과 같이 바뀝니다 harnir 20090531
. 루트에서 올바르게 작동하려면 (예 : 대신 사용자 이름을 작성하십시오 root
)를 사용하여 로그인해야합니다 sudo
.
iabbrev xxsig <Esc> : r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER`날짜 '+ \ % Y \ % m \ % d'`"\ | \ | echo "$ USER`date '+ \ % Y \ % m \ % d'`"<CR> I <BS> <Esc> A
# -- Some title -------------------{{{1
길이 78 자 와 같은 주석 "줄"을 삽입하십시오 - \com#
표준 모드에서 누르면 거기에 있습니다. 제목을 추가 할 수 있도록 바꾸기 모드로 자동 전환됩니다.
nmap \ com # O # <Esc> 72A- <Esc> 3A {<Esc> A1 <Esc> <홈> 4 <오른쪽> R <Space>
당신은 쉽게 다른 코멘트 시스템 (위해 그것을 수정할 수 있습니다 "
, //
등), 또는 내 설정 파일을 확인하십시오.
RCS 시스템에 구성 파일이있는 경우 특정 시스템에 특정한 구성 옵션을 포함시킬 수 있습니다. 이를 위해서는 ~/.vimrc.local
구성이 끝날 때 자동으로 포함 된 파일 을 갖는 것이 좋습니다 (물론 존재하는 경우).
파일을 읽을 수있는 경우 (expand ( "~ / .vimrc.local")) 소스 ~ / .vimrc.local 엔디 프
이것의 어떤 부분이 특히 sysadmin과 관련이 있는지 확실하지 않지만 내 필수 사항은 다음과 같습니다.
syntax on
set background=dark
set shiftwidth=2
set tabstop=2
if has("autocmd")
filetype plugin indent on
endif
set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set incsearch " Incremental search
또한 항상 머신이 nginx 구문 강조 파일에 액세스 할 수 있는지 확인 합니다 .
일반적으로 사용자에서 작업하는 경우 이보다 파일을 "파이프"하여 sudo로 저장할 수 있습니다.
cmap w!! %!sudo tee > /dev/null %
다음 명령을 사용하십시오 :
:w!!
sudo를 호출하고 파일을 저장하십시오.
tee
대신에 사용 cat
합니까?
이 SO 질문을 볼 수도 있습니다 : vimrc에 무엇이 있습니까?
뻔뻔한 플러그. 이것은 실제로 .vimrc 변경이 아니라 VIM 플러그인입니다. 설치된 모든 VIM 버전에서 RCSVers를 사용합니다. 기본적으로 RCS 명령을 사용하여 편집 한 파일의 버전을 저장합니다. RCSVers가 내가 변경 한 내용을 보여줌으로써 나를 구하기 위해 구성 파일을 몇 번이나 망쳤는지 알 수 없습니다.
많은 VIM 신규 이민자들이 이것을 읽을 것이라는 것을 알고 있기 때문에, 내가 가진 가장 좋은 제안은 : "게으르지 말고 .vimrc에 맵 항목을 넣습니다"VIM에서 비표준적인 방법을 배우면 기분이 좋아질 것입니다. vimrc가 없을 때 총 김프. vi의 학습 곡선은 가파르지만 배우지 않기로 선택하여 호의를 베풀지 않습니다.
모든 "스마트"들여 쓰기 모드를 비활성화합니다. 프로그래밍에 적합하며 구성 파일에는 적합하지 않습니다.
나는 종종 이상한 문제를 추적하기 위해 strace를 사용합니다. 결과적으로 구문 강조를 시도하면 일부 문자열이 큰 줄로 어리 석을 수 있습니다. 이 경우 구문 강조를 2048 열로 제한하기 위해 set synmaxcol = 2048을 사용합니다.
나는 또한 풍부한 태그를 사용하는 taglist 플러그인의 팬입니다. 지금까지 컴파일 된 ctags 바이너리를 둘러 볼 수 있었고 라이브러리 문제는 발생하지 않았습니다. 이를 통해 작업하는 코드를 빠르게 탐색 할 수 있습니다. 일반적으로 Perl, Python 또는 C입니다.