sysadmins .vimrc의 항목 제안


21

적어도 나는 항상 / etc / vim / vimrc에서 "구문 온"을 주석 해제한다


큰 파일을 자주 편집하는 경우 항상 구문을 설정하는 것이 좋지 않을 수 있습니다. 대용량 파일 (수십 또는 수백 MB)에서 구문 강조 표시는 vim이 많은 CPU를 소비하므로 몇 초 동안 응답하지 않을 수 있습니다. 거대한 XML 파일을 편집 해보십시오 ... 물론 항상 : syn off (한 번 vim이 복구되면 ...) 할 수 있습니다.
sleske

답변:


4

우리의 CTO는 GitHub에서 기능이 가득한 Vim 구성을 가지고 있습니다 .

하이라이트:

  • 구문 강조, 2 개의 공백 탭 정지, 확장 된 탭.
  • NERDtree는 TextMate의 프로젝트 드로어와 유사한 파일 트리보기입니다.
  • FuzzyFileFinder , TextMate의 cmd-T 기능을 수행하기위한 플러그인.
  • 멋진 (황혼) 기본값으로 많은 색상 테마.

시스템 관리 도구가 Ruby로 작성 되었기 때문에 Ruby 코딩에 유용합니다.


방금 이것들과 함께 연주했으며 나열된 vim 구성으로 조사해야 할 것이 더 많지만 제정신 기본값과 유용한 기능에 대한 나의 기대에 부합합니다. 커뮤니티 위키에서 어떻게 '답변'으로 투표 할 수 있는지 잘 모르겠습니다. 감사!
Gareth

17

먼저, 여러 대의 컴퓨터를 사용하는 경우 ~/.vim/, ~/.vimrc및 기타 유용한 구성 파일 ( screen, 셸 등)을 개정 관리 시스템에 넣는 것을 고려하십시오 . 나는 darcs데비안 시스템에서 저렴하고 (하스켈 컴파일러를 설치할 필요가없고, 패키지를 직접 설치할 필요가있다) 분산되어 있으며 훌륭한 대화식 모드를 가지고있다. 당신이 알고 / 좋아한다면 git, 당신은 또한 그것을 고수 할 수 있습니다.

현재 설정 파일은 darcs 저장소에서 사용할 수 있습니다 http://repo.harnir.net/. 내가 ~/.vimrc따르는 몇 가지 구체적인 예 . 죄송합니다. 새로운 사용자이므로 스크립트에 대한 링크가 없습니다 http://vim.org/.

sysadmins를위한 필수 ViM 스크립트

  • 원격 파일을 편집 할 때 백업 스크립트는 필수입니다. 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 = 아파치

ViM 구성 옵션

대부분의 구성 옵션은 다음과 같이 매우 인기가 있습니다 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
엔디 프

NFS 마운트 홈 디렉토리가있는 경우 마지막 팁은 작동하지만 작동하지 않습니다. 어떤 시스템에 있더라도 홈 디렉토리는 동일합니다. 이 팁은 "~"의 정의에 따라 달라집니다. 일부 쉘은 해당 속기를 지원하지 않습니다.
Mei

sysadmin은 아마도 'root'계정의 서버에서 작업 할 것입니다.이 계정은 로컬이어야하며 NFS를 통해 마운트되지 않아야합니다. 이 경우 /root/.vimrc.local이 제대로 작동합니다.
drybjed 2016 년

6

이것의 어떤 부분이 특히 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 구문 강조 파일에 액세스 할 수 있는지 확인 합니다 .


나는 .vimrc와 관련하여 구체적으로 '프로그래밍'할 수있는 것을 분리하는 것만으로 표현했습니다. 질문을 바꿔야한다고 생각합니까?
Gareth

아니, 그대로 두십시오. 나는 일부 시스템 관리자와 관련이있는 사람이 아니라고 확신합니다.
Adam Gibbins

일반적으로 이것에 동의합니다 ... 그러나 탭은 8 칸입니다. vim에서는 less / tail / cat에서 다르게 동작합니다. 그래도 그러한 종교적인 것들 중 하나 일 수 있습니다.
Alexandre Carmel-Veilleux 2016 년

4

일반적으로 사용자에서 작업하는 경우 이보다 파일을 "파이프"하여 sudo로 저장할 수 있습니다.

cmap w!! %!sudo tee > /dev/null %

다음 명령을 사용하십시오 :

:w!!

sudo를 호출하고 파일을 저장하십시오.


흥미 롭군 왜 tee대신에 사용 cat합니까?
David Schmitt

1
고양이는 파일에 아무것도 쓰지 않기 때문에; 그냥 stdout에 씁니다.
Chris Jester-Young

cat-> % 제대로 작동합니다.
olle


2

뻔뻔한 플러그. 이것은 실제로 .vimrc 변경이 아니라 VIM 플러그인입니다. 설치된 모든 VIM 버전에서 RCSVers를 사용합니다. 기본적으로 RCS 명령을 사용하여 편집 한 파일의 버전을 저장합니다. RCSVers가 내가 변경 한 내용을 보여줌으로써 나를 구하기 위해 구성 파일을 몇 번이나 망쳤는지 알 수 없습니다.

http://www.vim.org/scripts/script.php?script_id=563


2

VIM 학습을 피하기 위해 .vimrc를 사용하지 마십시오

많은 VIM 신규 이민자들이 이것을 읽을 것이라는 것을 알고 있기 때문에, 내가 가진 가장 좋은 제안은 : "게으르지 말고 .vimrc에 맵 항목을 넣습니다"VIM에서 비표준적인 방법을 배우면 기분이 좋아질 것입니다. vimrc가 없을 때 총 김프. vi의 학습 곡선은 가파르지만 배우지 않기로 선택하여 호의를 베풀지 않습니다.


1
Vim에는 멋진 기능이 있습니다. 왜 사용하지 않겠습니까 ?? vi로 전환해야 할 때는 일시적입니다. vim이 설치되어 있지 않은 곳에서 과도하게 작업해야한다고 생각한다면 설치할 가치가 있습니다.
Luc M

0

내 답변의 적어도 일부는 프로그래밍 .vimrc와 동일합니다.

set hidden
map <TAB> :e#<CR>

map <F7> :set paste!<CR>
map <F8> :set hlsearch!<CR>
map <F9> :!co -l %<CR>:e<CR>
map <F10> :!rcsdiff %<CR>
map <F11> :!ci -u %<CR>:e<CR>

편집중인 파일 중 적어도 일부가 RCS에 없으면 파일이 있어야합니다! :)



0

나는 종종 이상한 문제를 추적하기 위해 strace를 사용합니다. 결과적으로 구문 강조를 시도하면 일부 문자열이 큰 줄로 어리 석을 수 있습니다. 이 경우 구문 강조를 2048 열로 제한하기 위해 set synmaxcol = 2048을 사용합니다.

나는 또한 풍부한 태그를 사용하는 taglist 플러그인의 팬입니다. 지금까지 컴파일 된 ctags 바이너리를 둘러 볼 수 있었고 라이브러리 문제는 발생하지 않았습니다. 이를 통해 작업하는 코드를 빠르게 탐색 할 수 있습니다. 일반적으로 Perl, Python 또는 C입니다.

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