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.