Suggerimenti per le voci in un amministratore di sistema .vimrc


21

Per lo meno ho sempre decommentato la "sintassi su" in / etc / vim / vimrc


Attenzione, avere sempre la sintassi attiva può essere una cattiva idea se si modificano spesso file di grandi dimensioni. Su file di grandi dimensioni (dozzine o centinaia di MB), l'evidenziazione della sintassi può rendere Vim non responsabile per diversi secondi, poiché consuma molta CPU. Prova a modificare un enorme file XML ... Ovviamente puoi sempre fare: syn off (una volta recuperato vim ...).
sleske,

Risposte:


4

Il nostro CTO ha una configurazione Vim piuttosto ricca di funzionalità su GitHub .

Mette in risalto:

  • Evidenziazione della sintassi, 2 spazi tabstop, schede espanse.
  • NERDtree, una vista ad albero di file simile al cassetto del progetto di TextMate.
  • FuzzyFileFinder , plugin per eseguire la funzionalità cmd-T di TextMate.
  • Un sacco di temi di colore con un bel default (crepuscolo).

Lo trovo ottimo per la codifica Ruby, poiché i nostri strumenti di amministrazione del sistema sono scritti in Ruby.


Ho appena giocato con un sacco di questi e c'è molto di più da indagare con la configurazione di VIM che hai elencato, ma si adatta alle mie aspettative di impostazioni predefinite e funzioni utili. Non sono sicuro di come una wiki della community mi permetta di votare come "risposta", ma comunque. Grazie!
Gareth,

17

In primo luogo, se si dispone di più di un paio di macchine con cui lavori, considerare di mettere il vostro ~/.vim/, ~/.vimrce altri file di configurazione utili ( screen, la shell, ecc) in un sistema di controllo di revisione. Preferisco usare darcs- è economico sui sistemi Debian (non è necessario installare il compilatore Haskell, basta installare direttamente il pacchetto), distribuito e ha fantastiche modalità interattive. Se conosci / ti piace git, puoi anche attenersi a questo.

I miei file di configurazione in corso sono disponibili nel mio repository darcs, http://repo.harnir.net/. Alcuni esempi specifici dal mio ~/.vimrcseguito. Siamo spiacenti, nessun link per gli script, ecc. Perché sono un nuovo utente, ma tutti quelli su cui puoi trovare http://vim.org/.

Script ViM essenziali per amministratori di sistema

  • uno script di backup è d'obbligo quando si modificano file remoti. Uso lo script cbackup.vim , che mantiene le ultime 10 copie di ogni file modificato in una directory centrale e rimuove automaticamente quelli vecchi - basta inserire la ~/.vim/plugins/directory e dimenticarsene :-)

  • TaskList consente di cercare rapidamente FIXME, XXXe TODOtag nei file corrente, visualizzarli e andare al tag con un solo tasto. Se si utilizzano questi tag, prendere in considerazione l'installazione di questo

  • dbext è essenziale per tutti i DBA, molto utile anche per i programmatori che lavorano con i database. Ti consente di eseguire query, controllare la struttura dei database e quant'altro. Si tratta essenzialmente di un front-end per strumenti come mysql, sqlite3, sqlpluse altri. Se lavori con i database, è un must!

File di sintassi

Non ho visto molte sintassi utili in natura, la maggior parte dei file con cui i sysadmin funzionano sono configurazioni /etce di solito sono abbastanza ben evidenziate. Nel mio ~/.vim/syntax/ho attualmente una sintassi per i colori CSS , che è eccezionale (buono anche per gli sviluppatori web), ma il resto non è molto ben scritto, forse li aggiornerò nel tempo libero. File di sintassi aggiuntivi che vale la pena avere sono per: dhcpd.conf , / etc / network / interfaces , file di configurazione nginx e local.cf di SpamAssassin .

Suggerimento utile con la sintassi: se un file di configurazione non viene riconosciuto (ha un nome strano, come /etc/apache2/sites-enabled/some.domain.com, puoi aggiungere un'estensione corretta al suo nome (in questo caso .conf) o aggiungere una modeline ViM alla fine di esso:

# vim: filetype = apache

Opzioni di configurazione di ViM

La maggior parte delle opzioni di configurazione è molto popolare, come set nocompatible rulerecc. Le opzioni molto buone da avere sono:

  • set gdefault: inverte la gmodalità in s///g- con quell'opzione /gverrà utilizzata per impostazione predefinita, quindi non è necessario aggiungerla ogni volta - basta aggiungerla per disattivarla

  • set incsearch ignorecase smartcase hlsearch: essenziale per la ricerca tra i file - incrementale, mostra le corrispondenze in tempo reale, la ricerca ignora maiuscole a meno che non si utilizzino lettere maiuscole

  • set pastetoggle=<F6>: O altra chiave che si preferisce, commuta tra pastee nopastemodalità, un must se si copia-incolla qualcosa da una pagine web come ServerFault :-)

  • set noerrorbells visualbell t_vb=: sbarazzati della fastidiosa campana o campana visiva ogni volta che fai qualcosa;)

Funzioni, mappature della tastiera

  • incolla il tuo nome utente e la data corrente in un file, utile se lavori in gruppo e aggiungi commenti nei file su chi ha cambiato qualcosa quando. Basta scrivere xxsige premere lo spazio, sarà cambiato in qualcosa del genere harnir 20090531. Perché questo funzioni correttamente con root (es. Scrivi il tuo nome utente invece di root), devi accedere 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
    
  • Inserisci "righe" di commento, come # -- Some title -------------------{{{1, lunghezza 78 caratteri - premi \com#in modalità normale ed eccolo qui. Sarai automaticamente in modalità Sostituisci in modo da poter aggiungere il titolo:

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

Si può facilmente modificare per altri sistemi di commento ( ", //, ecc), o semplicemente controllare il mio file di configurazione.

Tocco finale

Se hai i tuoi file di configurazione nel sistema RCS, a volte potresti voler includere opzioni di configurazione specifiche per un determinato computer. Per questo, è bene avere un ~/.vimrc.localfile, incluso automaticamente alla fine della configurazione (se presente, ovviamente).

se filereadable (espandi ("~ / .vimrc.local"))
        source ~ / .vimrc.local
finisci se

L'ultimo suggerimento - per quanto buono possa essere - non funziona quando si hanno directory home montate su NFS: indipendentemente dalla macchina su cui ci si trova, la directory home sarà la stessa. Nota anche che quel suggerimento dipende dalla definizione di "~" - alcune shell non supportano quella stenografia.
Mei,

Come amministratore di sistema, probabilmente lavori sui server con un account "root", che dovrebbe essere locale e non montato tramite NFS. In questo caso /root/.vimrc.local dovrebbe funzionare bene.
drybjed

6

Non sono sicuro di quale parte di questo sia specificamente correlata al sysadmin, ma i miei elementi essenziali sono:

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

Inoltre, mi assicuro sempre che la macchina abbia accesso al file di evidenziazione della sintassi nginx .


L'ho solo espresso in questo modo per separare ciò che potrebbe essere specificamente correlato alla "programmazione" per un .vimrc Dovrei cambiare la domanda, pensi?
Gareth,

Nah lo lascia così com'è, sono sicuro che alcune persone hanno cose legate al sysadmin, proprio io no.
Adam Gibbins,

Generalmente d'accordo con questo ... Ma una scheda è di 8 spazi. Qualcos'altro e si comporta diversamente in vim quindi in less / tail / cat. Potrebbe essere una di quelle cose religiose però.
Alexandre Carmel-Veilleux,

4

Se di solito stai lavorando con un utente, allora questo rende possibile "reindirizzare" un file su sudo in modo che possa essere salvato.

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

usa il comando:

:w!!

per invocare sudo e salvare il file.


Interessante. Perché usi teeinvece di cat?
David Schmitt,

1
Perché cat non scriverà nulla su un file; scrive solo su stdout.
Chris Jester-Young,

cat ->% Funziona altrettanto bene.
olle


2

Spina senza vergogna. Questa non è davvero una modifica .vimrc ma piuttosto un plug-in VIM. Uso RCSVers su ogni versione installata di VIM. Fondamentalmente utilizza il comando RCS per salvare una versione di qualsiasi file modificato. Non sai quante volte ho rovinato un file di configurazione solo per farmi salvare da RCSVer mostrandomi le modifiche che ho apportato.

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


2

Non usare .vimrc per evitare di imparare VIM

Dal momento che so che molti nuovi arrivati ​​di VIM leggeranno questo, il miglior suggerimento che ho è: "Non diventare pigro e inserisci voci di mappa nel tuo .vimrc" Imparare modi non standard di fare le cose in VIM ti farà sentire come un gimp totale quando sei senza il tuo vimrc. La curva di apprendimento per vi è ripida, ma non stai facendo alcun favore scegliendo di non imparare.


1
Vim ha delle belle caratteristiche. Perché non usarlo ?? Quando devi passare a vi, è temporaneo. Se pensi che dovrai lavorare intensamente dove vim non è installato, vale la pena installarlo.
Luc M

0

Almeno una parte della mia risposta è la stessa della mia programmazione .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 almeno alcuni file che stai modificando non sono in RCS, dovrebbero esserlo! :)


0

Disabilitazione di tutte le modalità di rientro "intelligenti". Ottimo per la programmazione, l'inferno per il file di configurazione.


0

Spesso finisco per usare strace per rintracciare problemi strani. Di conseguenza, il tentativo di evidenziare la sintassi di alcune linee può diventare ridicolo con una stringa di grandi dimensioni. Stando così le cose, uso set synmaxcol = 2048 per limitare l'evidenziazione della sintassi a 2048 colonne.

Sono anche un grande fan del plug-in taglist che utilizza tag esuberanti. Finora sono stato in grado di aggirare il binario ctags compilato e non ho riscontrato alcun problema con la libreria. Questo mi permette rapidamente di navigare tra i codici con cui lavoro. Quelli generalmente sono Perl, Python o C.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.