Sugestões para entradas em um sysadmins .vimrc

21

No mínimo, sempre descomente "sintaxe ativada" em / etc / vim / vimrc

Gareth
fonte
Cuidado, sempre ter a sintaxe ativada pode ser uma ideia se você costuma editar arquivos grandes. Em arquivos grandes (dezenas ou centenas de MB), o destaque da sintaxe pode fazer com que o vim se torne irresponsável por vários segundos, pois consome muita CPU. Apenas tente editar um arquivo XML enorme ... É claro que você sempre pode fazer: syn off (depois que o vim se recuperar ...).
Sleske 28/05

Respostas:

4

Nosso CTO possui uma configuração Vim bastante cheia de recursos no GitHub .

Luzes:

  • Destaque de sintaxe, duas abas de espaço, abas expandidas.
  • NERDtree, uma visualização em árvore de arquivos semelhante à gaveta do projeto do TextMate.
  • FuzzyFileFinder , plug-in para executar a funcionalidade cmd-T do TextMate.
  • Muitos temas de cores com um ótimo padrão (crepúsculo).

Acho ótimo para a codificação do Ruby, pois nossas ferramentas de administração do sistema são escritas em Ruby.

jtimberman
fonte
Acabei de jogar com vários deles e há muito mais para investigar com a configuração do vim que você listou, mas se encaixa na minha expectativa de padrões saudáveis ​​e recursos úteis. Não tenho certeza de como um wiki da comunidade me permite votar como 'respondido', mas como qualquer outro. Obrigado!
Gareth
17

Primeiro, se você tiver mais de um par de máquinas que trabalham com você, considere colocar o seu ~/.vim/, ~/.vimrce de outros arquivos úteis Config ( screen, seu shell, etc.) em um sistema de controle de revisão. Eu prefiro usar darcs- é barato nos sistemas Debian (não é necessário instalar o compilador Haskell, basta instalar o pacote diretamente), distribuído e possui ótimos modos interativos. Se você sabe / gosta git, também pode ficar com isso.

Meus arquivos de configuração atuais estão disponíveis no meu repositório darcs http://repo.harnir.net/,. Alguns exemplos específicos do meu ~/.vimrcacompanhamento. Desculpe, não há links para scripts, etc. porque eu sou um novo usuário, mas todos aqueles que você pode encontrar http://vim.org/.

Scripts essenciais do ViM para sysadmins

  • um script de backup é essencial quando você edita arquivos remotos. Eu uso o script cbackup.vim , que mantém as últimas 10 cópias de cada arquivo editado em um diretório central e remove automaticamente os antigos - basta colocar no seu ~/.vim/plugins/diretório e esquecê-lo :-)

  • TaskList permite procurar rapidamente FIXME, XXXe TODOtags no arquivo atual, exibi-los e ir para o tag com apenas uma tecla. Se você usar essas tags, considere instalar esta

  • O dbext é essencial para todo o DBA, também muito útil para programadores que trabalham com bancos de dados. Vamos executar consultas, verificar a estrutura dos bancos de dados e outros enfeites. É essencialmente um front-end para ferramentas como mysql, sqlite3, sqlpluse outros. Se você trabalha com bancos de dados, é obrigatório!

Arquivos de sintaxe

Eu não vi muitas sintaxes úteis na natureza, a maioria dos arquivos com os quais os administradores de sistemas trabalham são configurações /etce geralmente são bem destacadas. Na minha ~/.vim/syntax/Eu tenho atualmente sintaxe para cores CSS , que é incrível (também bom para os desenvolvedores web), mas o resto não é muito bem escrito, eu talvez vou atualizá-los no tempo livre. Os arquivos de sintaxe adicionais que valem a pena são os seguintes: dhcpd.conf , / etc / network / interfaces , arquivos de configuração do nginx e o local.cf do SpamAssassin .

Dica útil com sintaxe: se um arquivo de configuração não for reconhecido (com um nome estranho, como /etc/apache2/sites-enabled/some.domain.com, você pode anexar a extensão correta ao seu nome (neste caso .conf)) ou adicionar uma modelagem do ViM ao final:

# vim: filetype = apache

Opções de configuração do ViM

A maioria das opções de configuração é muito popular, como set nocompatible ruleretc. Opções muito boas para ter são:

  • set gdefault: inverte o gmodo s///g- com essa opção /gserá usada por padrão, para que você não precise adicioná-lo todas as vezes - basta adicioná-lo para desativá-lo

  • set incsearch ignorecase smartcase hlsearch: essencial para pesquisar arquivos - incremental, mostra correspondências em tempo real; a pesquisa ignora maiúsculas, a menos que você use letras maiúsculas

  • set pastetoggle=<F6>: ou outra tecla que você preferir, alterna entre pastee nopastemodos, uma obrigação se você copiar e colar algo de páginas da web como ServerFault :-)

  • set noerrorbells visualbell t_vb=: livre-se da campainha irritante ou visual sempre que fizer algo;)

Funções, mapeamentos de teclado

  • cole seu nome de usuário e data atual em um arquivo, útil se você trabalha em equipe e adiciona comentários em arquivos sobre quem mudou algo quando. Basta escrever xxsige pressionar espaço, ele será alterado para algo como harnir 20090531. Para que isso funcione corretamente com o root (ou seja, escreva seu nome de usuário em vez de root), é necessário fazer login usando sudo.

    iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` date '+ \% Y \% m \% d'` "\ | \ | echo "$ USER` date '+ \% Y \% m \% d'` "<CR> I <BS> <Esc> A
    
  • Inserir comentários "linhas", tipo # -- Some title -------------------{{{1, comprimento 78 caracteres - pressione \com#no modo normal e pronto. Você estará automaticamente no modo Substituir para poder adicionar o título:

    nmap \ com # O # <Esc>72A-<Esc>3A{<Esc>A1<Esc> <Home> 4 <Right> R <Space>
    

Você pode facilmente modificá-lo para outros sistemas de comentários ( ", //, etc.), ou apenas verificar meu arquivo de configuração.

Toque final

Se você possui seus arquivos de configuração no sistema RCS, às vezes pode querer incluir opções de configuração específicas para uma determinada máquina. Para isso, é bom ter um ~/.vimrc.localarquivo, incluído automaticamente no final da configuração (se estiver presente, é claro).

se arquivável (expand ("~ / .vimrc.local"))
        source ~ / .vimrc.local
fim se
drybjed
fonte
A última dica - por melhor que seja - não funciona quando você possui diretórios pessoais montados em NFS: não importa em qual máquina você esteja, seu diretório pessoal será o mesmo. Observe também que essa dica depende da definição de "~" - algumas conchas não suportam essa abreviação.
Mei
Como administrador de sistema, você provavelmente trabalha nos servidores da conta 'root', que deve ser local e não montada via NFS. Nesse caso, /root/.vimrc.local deve funcionar bem.
drybjed
6

Não tenho certeza de que parte disso está relacionada especificamente ao administrador de sistemas, mas meus itens essenciais são:

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

Também sempre garanto que a máquina tenha acesso ao arquivo de destaque da sintaxe nginx .

Adam Gibbins
fonte
Eu só o expressei assim para separar o que poderia estar especificamente relacionado à 'programação' de um arquivo .vimrc. Devo mudar a pergunta, você acha?
730 Gareth
Não deixe como está, tenho certeza que algumas pessoas têm coisas relacionadas ao administrador de sistemas, mas não a mim.
447 Adam Gibbins
Geralmente concordo com isso ... Mas uma guia tem 8 espaços. Qualquer outra coisa e se comporta de maneira diferente no vim e depois em menos / cauda / gato. Pode ser uma daquelas coisas religiosas.
Alexandre Carmel-Veilleux
4

Se você normalmente trabalha com um usuário, isso torna possível "canalizar" um arquivo para o sudo para que ele possa ser salvo.

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

use o comando:

:w!!

para invocar o sudo e salvar o arquivo.

quentin
fonte
Interessante. Por que você usa em teevez de cat?
David Schmitt
1
Porque gato não escreve nada em um arquivo; apenas escreve para stdout.
4911 Chris Jester-Young
cat ->% Funciona tão bem.
olle
2

Plugue sem vergonha. Esta não é realmente uma alteração .vimrc, mas um plugin do VIM. Eu uso RCSVers em todas as versões instaladas do VIM. Basicamente, ele usa o comando RCS para salvar uma versão de qualquer arquivo que você editar. Você não sabe quantas vezes estraguei um arquivo de configuração apenas para que os RCSVers me salvassem, mostrando as alterações que fiz.

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

JD Frias
fonte
2

Não use .vimrc para evitar o aprendizado do VIM

Como sei que muitos iniciantes do VIM lerão isso, a melhor sugestão que tenho é: "Não fique com preguiça e coloque entradas de mapa no seu .vimrc" Aprender maneiras não padronizadas de fazer as coisas no VIM fará com que você sinta que um total gimp quando você está sem o vimrc. A curva de aprendizado para o vi é íngreme, mas você não está fazendo nenhum favor a si mesmo escolhendo não aprender.

Bruno Bronosky
fonte
1
O Vim possui ótimos recursos. Por que não usá-lo? Quando você precisa mudar para o vi, é temporário. Se você acha que precisará trabalhar muito onde o vim não está instalado, vale a pena instalá-lo.
187 Luc Luc
0

Pelo menos uma parte da minha resposta é igual à minha programação .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>

Se pelo menos alguns arquivos que você está editando não estão no RCS, eles deveriam estar! :)

MikeyB
fonte
0

Desativando todos os modos de indentação "inteligentes". Ótimo para programação, inferno para arquivo de configuração.

Alexandre Carmel-Veilleux
fonte
0

Costumo usar strace para rastrear problemas estranhos. Como resultado, tentar destacar a sintaxe de algumas linhas pode ficar ridículo com uma cadeia de caracteres grande. Sendo esse o caso, eu uso o conjunto synmaxcol = 2048 para limitar a sintaxe destacada em 2048 colunas.

Eu também sou bastante fã do plugin taglist, que usa tags exuberantes. Até agora, fui capaz de contornar as binárias ctags compiladas e não encontrei nenhum problema de biblioteca. Isso rapidamente me permite navegar por qualquer código com o qual trabalho. Aqueles geralmente sendo Perl, Python ou C.

jwp
fonte