À tout le moins, je décomment toujours "syntaxe activée" dans / etc / vim / vimrc
À tout le moins, je décomment toujours "syntaxe activée" dans / etc / vim / vimrc
Réponses:
Notre CTO a une configuration Vim assez riche en fonctionnalités sur GitHub .
Points forts:
Je le trouve idéal pour le codage Ruby, car nos outils d'administration système sont écrits en Ruby.
Tout d' abord, si vous avez plus de machines à couple que vous travaillez, pensez à mettre votre ~/.vim/
, ~/.vimrc
et d' autres fichiers de configuration utiles ( screen
, votre shell, etc.) dans un système de contrôle de révision. Je préfère utiliser darcs
- c'est bon marché sur les systèmes Debian (pas besoin d'installer le compilateur Haskell, installez juste le paquet directement), distribué et a de grands modes interactifs. Si vous savez / aimez git
, vous pouvez également vous en tenir à cela.
Mes fichiers de configuration actuels sont disponibles dans mon dépôt de darcs, http://repo.harnir.net/
. Quelques exemples spécifiques de ma ~/.vimrc
suite. Désolé, pas de liens pour les scripts, etc. parce que je suis un nouvel utilisateur, mais tous ceux que vous pouvez trouver sur http://vim.org/
.
un script de sauvegarde est indispensable lorsque vous modifiez des fichiers distants. J'utiliser cbackup.vim script, qui conserve 10 dernières copies de chaque fichier dans un répertoire édité central et supprime automatiquement les anciens - il suffit de mettre dans votre ~/.vim/plugins/
répertoire et oublier :-)
TaskList vous permet de rechercher rapidement FIXME
, XXX
et les TODO
balises dans le fichier en cours, les afficher et aller à l'étiquette avec une seule pression de touche. Si vous utilisez ces balises, envisagez d'installer celle-ci
dbext est essentiel pour tous les DBA, également très utile pour les programmeurs travaillant avec des bases de données. Laissez-vous exécuter des requêtes, vérifier la structure des bases de données et ainsi de suite. Il est essentiellement une extrémité avant pour des outils comme mysql
, sqlite3
, sqlplus
et d' autres. Si vous travaillez avec des bases de données, c'est un must!
Je n'ai pas vu beaucoup de syntaxe utile dans la nature, la plupart des fichiers avec lesquels les administrateurs système fonctionnent sont des configurations /etc
et ils sont généralement assez bien mis en évidence. Dans mon, ~/.vim/syntax/
j'ai actuellement une syntaxe pour les couleurs CSS , ce qui est génial (également bon pour les développeurs Web), mais le reste n'est pas très bien écrit, je vais peut-être les mettre à jour pendant le temps libre. Les fichiers de syntaxe supplémentaires qui valent la peine d'être créés sont pour: dhcpd.conf , / etc / network / interfaces , les fichiers de configuration nginx et le fichier local.cf de SpamAssassin .
Astuce utile avec la syntaxe: si un fichier de configuration n'est pas reconnu (a un nom étrange, comme /etc/apache2/sites-enabled/some.domain.com
, vous pouvez soit ajouter l'extension correcte à son nom (dans ce cas .conf
) ou ajouter une modélisation ViM à la fin de celui-ci:
# vim: filetype = apache
La plupart des options de configuration sont très populaires, comme set nocompatible ruler
etc. De très bonnes options sont:
set gdefault
: inverse le g
mode s///g
- avec cette option /g
sera utilisée par défaut, vous n'avez donc pas besoin de l'ajouter à chaque fois - il suffit de l'ajouter pour le désactiver
set incsearch ignorecase smartcase hlsearch
: essentiel pour la recherche dans les fichiers - incrémentiel, affiche les correspondances en temps réel, la recherche ignore la casse sauf si vous utilisez des majuscules
set pastetoggle=<F6>
: ou une autre clé que vous préférez, bascule entre les modes paste
et nopaste
, un must si vous copiez-collez quelque chose à partir d'une page Web comme ServerFault :-)
set noerrorbells visualbell t_vb=
: débarrassez-vous de la cloche ennuyeuse ou visuelle à chaque fois que vous faites quelque chose;)
collez votre nom d'utilisateur et votre date actuelle dans un fichier, utile si vous travaillez en équipe et ajoutez des commentaires dans des fichiers sur qui a changé quelque chose quand. Il suffit d'écrire xxsig
et d'appuyer sur l'espace, il sera changé en quelque chose comme harnir 20090531
. Pour que cela fonctionne correctement avec root (c.-à-d. Écrivez votre nom d'utilisateur au lieu de root
), vous devez vous connecter en utilisant 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
Insérez un commentaire "lignes", comme # -- Some title -------------------{{{1
, longueur 78 caractères - appuyez sur \com#
en mode normal et le voilà. Vous serez automatiquement en mode Remplacer pour pouvoir ajouter le titre:
nmap \ com # O # <Esc>72A-<Esc>3A{<Esc>A1<Esc> <Home> 4 <Right> R <Space>
Vous pouvez facilement le modifier pour d' autres systèmes de commentaires ( "
, //
, etc.), ou tout simplement vérifier mon fichier de configuration.
Si vous avez vos fichiers de configuration dans le système RCS, vous voudrez peut-être parfois inclure des options de configuration spécifiques à une certaine machine. Pour cela, il est bon d'avoir un ~/.vimrc.local
fichier, inclus automatiquement à la fin de la configuration (s'il est présent, bien sûr).
si lisible par fichier (développez ("~ / .vimrc.local")) source ~ / .vimrc.local fin si
Je ne sais pas vraiment quelle partie de cela est spécifiquement liée à l'administrateur système, mais mes éléments essentiels sont:
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
Je m'assure également toujours que la machine a accès au fichier de mise en évidence de la syntaxe nginx .
Si vous travaillez généralement avec un utilisateur, cela permet de "diriger" un fichier vers sudo afin qu'il puisse être enregistré.
cmap w!! %!sudo tee > /dev/null %
utilisez la commande:
:w!!
pour invoquer sudo et enregistrer le fichier.
tee
au lieu de cat
?
Vous pouvez également regarder cette question SO: Que contient votre vimrc ?
Prise sans vergogne. Ce n'est pas vraiment un changement .vimrc mais plutôt un plugin VIM. J'utilise RCSVers sur chaque version installée de VIM. Fondamentalement, il utilise la commande RCS pour enregistrer une version de tout fichier que vous modifiez. Vous ne savez pas combien de fois j'ai foiré un fichier de configuration uniquement pour que RCSVers me sauve en me montrant les modifications que j'ai apportées.
Comme je sais que beaucoup de nouveaux arrivants VIM liront ceci, la meilleure suggestion que j'ai est: "Ne soyez pas paresseux et ne mettez pas d'entrées de carte dans votre .vimrc" Apprendre des façons non standard de faire les choses dans VIM vous donnera l'impression une gimp totale lorsque vous êtes sans votre vimrc. La courbe d'apprentissage de vi est abrupte, mais vous ne vous faites aucune faveur en choisissant de ne pas apprendre.
Au moins une partie de ma réponse est la même que ma programmation .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>
Si au moins certains fichiers que vous éditez ne sont pas dans RCS, ils devraient l'être! :)
Désactiver tous les modes d'indentation «intelligents». Idéal pour la programmation, l'enfer pour le fichier de configuration.
Je finis souvent par utiliser strace pour traquer les problèmes étranges. Par conséquent, essayer de mettre en évidence la syntaxe de certaines lignes peut devenir ridicule avec une grande chaîne de caractères. Ceci étant le cas, j'utilise set synmaxcol = 2048 pour limiter la coloration syntaxique à 2048 colonnes.
Je suis également très fan du plugin taglist qui utilise des tags exubérants. Jusqu'à présent, j'ai pu contourner le binaire ctags compilé et je n'ai rencontré aucun problème de bibliothèque. Cela me permet rapidement de naviguer parmi les codes avec lesquels je travaille. Ceux-ci étant généralement Perl, Python ou C.