Bir sysadmins .vimrc girişleri için öneriler


21

En azından her zaman / etc / vim / vimrc'deki "syntax on" uncomcomment komutunu veririm


Dikkat edin, sık sık büyük dosyaları düzenlerseniz , her zaman sözdizimine sahip olmak kötü bir fikir olabilir. Büyük dosyalarda (düzinelerce veya yüzlerce MB), sözdizimi vurgulaması, çok fazla CPU tükettiği için vimin birkaç saniye boyunca yanıt vermemesine neden olabilir. Sadece büyük bir XML dosyasını düzenlemeyi deneyin ... Tabii ki her zaman yapabilirsiniz: syn off (bir kez vim kurtarıldı ...).
sleske

Yanıtlar:


4

CTO'muz GitHub'da oldukça özellik dolu bir Vim konfigürasyonuna sahip .

Özellikleri:

  • Sözdizimi vurgulama, 2 boşluk sekmesi, genişletilmiş sekmeler.
  • NERDtree, TextMate'in proje çekmecesine benzer bir dosya ağacı görünümü.
  • FuzzyFileFinder , TextMate'in cmd-T işlevselliğini yapmak için bir eklenti.
  • Güzel bir renk (alacakaranlık) varsayılanı ile çok sayıda renk teması.

Sistem yönetimi araçlarımız Ruby'de yazıldığı için Ruby kodlaması için harika buluyorum.


Bunlardan sadece birkaçıyla oynamıştım ve listelediğiniz vim config ile araştırmak için daha çok şey var, ancak aklı başında gelenler ve faydalı özellikler beklentime uyuyor. Bir topluluk wiki'sinin “cevap” olarak oy kullanmama nasıl izin verdiğinden emin değilim, ama herhangi bir şey. Teşekkürler!
Gareth,

17

Öncelikle daha birlikte çalıştığınız birkaç makineleri daha varsa, sayfanı koyarak düşünün ~/.vim/, ~/.vimrcve diğer yararlı yapılandırma dosyaları ( screenbir revizyon kontrol sisteminde, Kabuk, vs.). Kullanmayı tercih ediyorum darcs- Debian sistemlerinde ucuz (Haskell derleyicisini kurmaya gerek yok, sadece paketi doğrudan kurmaya gerek yok), dağıtılmış ve mükemmel etkileşimli modları var. Eğer biliyorsanız / beğenirseniz git, buna bağlı kalabilirsiniz.

Şu anki config dosyalarım darcs depomda mevcut http://repo.harnir.net/. Benim ~/.vimrctakipten bazı özel örnekler . Maalesef, komut dosyaları için bağlantı yok, çünkü yeni bir kullanıcıyım, ancak bulabileceğinizlerin tümü http://vim.org/.

Sysadmins için gerekli ViM scriptleri

  • Uzak dosyaları düzenlerken bir yedekleme komut dosyası bir zorunluluktur. Düzenlenen her bir dosyanın son 10 kopyasını merkezi bir dizinde tutan ve eskileri otomatik olarak silen cbackup.vim komut dosyasını kullanıyorum - yalnızca ~/.vim/plugins/dizininize koyun ve unutun :-)

  • TaskList hızlı aramanızı sağlar FIXME, XXXve TODOcari dosyadaki etiketleri, onları görüntüleyebilir ve sadece tek bir tuşa basılarak etiketine gidin. Bu etiketleri kullanıyorsanız, bunu yüklemeyi düşünün.

  • dbext tüm DBA'lar için çok önemlidir, aynı zamanda veritabanlarıyla çalışan programcılar için de çok faydalıdır. Sorguları çalıştıralım, veritabanlarının yapısını kontrol edelim ve ne yapalım. Bu temelde gibi araçlar için bir ön sonudur mysql, sqlite3, sqlplusve diğerleri. Veritabanlarıyla çalışıyorsanız, bu bir zorunluluktur!

Sözdizimi dosyaları

Vahşi ortamda pek çok faydalı sözdizimi görmedim, çoğu sysadmins'in çalıştığı dosyalar config içindedir /etcve genellikle oldukça iyi vurgulanırlar. ~/.vim/syntax/Şu anda benim için harika (aynı zamanda web geliştiricileri için de iyi) olan CSS renkleri için sözdizimine sahibim , ancak geri kalanı çok iyi yazılmamış, belki de boş zamanlarında güncelleyeceğim. Sahip olmaya değer ek sözdizimi dosyaları şunlardır: dhcpd.conf , / etc / network / interfaces , nginx yapılandırma dosyaları ve SpamAssassin 'in local.cf'si.

Sözdizimi ile faydalı ipucu: Bir yapılandırma dosyası tanınmazsa (örneğin /etc/apache2/sites-enabled/some.domain.com, tuhaf bir adı varsa), adına doğru bir uzantı ekleyebilir (bu durumda .conf) veya sonuna ViM modelini ekleyebilirsiniz:

# vim: filetype = apache

ViM yapılandırma seçenekleri

Yapılandırma seçeneklerinin çoğu set nocompatible rulervb. Çok popülerdir . Sahip olmak için çok iyi seçenekler:

  • set gdefault: içinde gmodu tersine çevirir s///g- bu seçenek /gvarsayılan olarak kullanılır, böylece her seferinde eklemeniz gerekmez - kapatmak için eklemeniz yeterlidir

  • set incsearch ignorecase smartcase hlsearch: dosyalar arasında arama yapmak için gerekli - artımlı, eşleşmeleri gerçek zamanlı olarak gösterir, büyük harf kullanmadıkça aramayı yok sayar.

  • set pastetoggle=<F6>: ya da tercih ettiğiniz, anahtarlar pasteve nopastemodlar arasında geçiş yapan diğer bir anahtar, ServerFault :-) gibi bir web sayfasından bir şey kopyalayıp yapıştırmanız durumunda

  • set noerrorbells visualbell t_vb=: bir şey yaptığınızda can sıkıcı zil veya görsel zilden kurtulun;)

İşlevler, klavye eşlemeleri

  • Kullanıcı adınızı ve geçerli tarihinizi bir dosyaya yapıştırın, bir takımda çalışıyorsanız ve bir şeyi değiştiren dosyalara yorumlarınızı eklerseniz kullanışlıdır. Sadece yazmak xxsigve boşluk basın, gibi bir şeyle değişecektir harnir 20090531. Bunun root ile doğru çalışması için (yani kullanıcı adınızı yazın root), kullanarak giriş yapmanız gerekir sudo.

    iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` tarih '+ \% Y \% m \% d'` "\ | \ | echo "$ USER` tarih '+ \% Y \% m \% d'` "<CR> I <BS> <Esc> A
    
  • Yorum ekle "çizgiler", # -- Some title -------------------{{{1uzunluk, 78 karakter - \com#normal modda basın ve işte orada. Başlığı eklemek için otomatik olarak Değiştirme modunda olacaksınız:

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

Kolayca diğer yorum sistemleri (bunu değiştirebilir ", //vs.), ya da sadece benim yapılandırma dosyasını kontrol.

Dokunma biten

Yapılandırma dosyalarınızı RCS sisteminde kullanıyorsanız, bazen belirli bir makineye özgü yapılandırma seçeneklerini dahil etmek isteyebilirsiniz. Bunun için ~/.vimrc.local, yapılandırmanın sonunda otomatik olarak dahil edilmiş bir dosyaya sahip olmak iyidir (eğer varsa, elbette).

doldurulabilir ise (genişletin ("~ / .vimrc.local"))
        kaynak ~ / .vimrc.local
endif

Son ipucu - olmasına rağmen iyi - NFS'ye bağlı ev dizinleri olduğunda çalışmaz: hangi makinede olursanız olun, ana dizininiz aynı olacaktır. Ayrıca, bu ucun "~" tanımına bağlı olduğunu unutmayın; bazı mermiler bu stenoyu desteklemiyor.
Mei

Bir sysadmin olarak, muhtemelen yerel olmalı ve NFS ile bağlanmamış olması gereken 'root' hesabındaki sunucularda çalışıyorsunuz. Bu durumda /root/.vimrc.local iyi çalışmalıdır.
drybjed

6

Bunun hangi kısmının özellikle sysadmin ile ilgili olduğundan emin değilim, ancak esaslarım:

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

Ayrıca, makinenin nginx sözdizimi vurgulama dosyasına erişebildiğinden de eminim .


Ben sadece bir .vimrc ile ilgili 'programlama' olabileceğini ayırmak için böyle ifade ettim Sence soruyu değiştirmeli miyim?
Gareth

Hayır, olduğu gibi bırak, bazı insanların sysadmin ile ilgili şeyleri olduğundan eminim, sadece ben değil.
Adam Gibbins

Genel olarak buna katılıyorum ... Ama bir sekme 8 boşluklu. Başka bir şey ve vim'de daha sonra daha az / kuyruk / kedi şeklinde farklı davranır. Yine de bu dini şeylerden biri olabilir.
Alexandre Carmel-Veilleux

4

Eğer genellikle bir kullanıcı üzerinde çalışıyorsanız, bundan daha fazlası bir dosyayı sudo 'ya yönlendirmeyi' mümkün kılar, böylece kurtarılabilir.

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

komutu kullan:

:w!!

sudo'yu çağırmak ve dosyayı kaydetmek için.


İlginç. Neden teeyerine kullanıyorsunuz cat?
David Schmitt

1
Çünkü kedi bir dosyaya hiçbir şey yazmaz; sadece stdout'a yazar.
Chris Jester-Young,

cat ->% Aynı derecede iyi çalışıyor.
olle


2

Utanmaz fiş. Bu gerçekten bir .vimrc değişikliği değil, bir VIM eklentisidir. VIM'in kurulu her sürümünde RCSVers kullanıyorum. Temel olarak, düzenlediğiniz herhangi bir dosyanın sürümünü kaydetmek için RCS komutunu kullanır. Yaptığım değişiklikleri bana göstererek RCSVer'in beni kurtarmasını sağlamak için bir yapılandırma dosyasını kaç kez batırdığımı bilmiyorsunuz.

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


2

VIM öğrenmekten kaçınmak için .vimrc kullanmayın

Birçok yeni VIM'in bunu okuyacağını bildiğim için, sahip olduğum en iyi öneri: "tembel olma ve harita girişlerini .vimrc'ye koyma." vimrc'iniz olmadan tam bir pezevenk. Vi için öğrenme eğrisi diktir, ancak öğrenmemeyi seçerek kendinize hiçbir iyilik yapmıyorsunuz.


1
Vim'in hoş özellikleri var. Neden kullanmıyorsun ?? Vi'ye geçmeniz gerektiğinde, geçicidir. Vim yüklü olmayan bir yerde çalışmak zorunda kalacağınızı düşünüyorsanız, onu kurmaya değer.
Luc M,

0

Cevabımın en azından bir kısmı benim programlama ile aynı.

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>

En azından düzenlediğiniz bazı dosyalar RCS'de değilse, öyle olmalı! :)



0

Sık sık garip sorunları izlemek için strace kullanıyorum. Sonuç olarak, söz diziminin altını çizmeye çalışmak, bazı satırların büyük dize dizeleriyle gülünç hale gelebileceğini vurgulamaktadır. Bu durumda, 2048 sütununa getirilen sözdizimini sınırlamak için set synmaxcol = 2048 kullanıyorum.

Ben de coşkulu etiketleri kullanan taglist eklentisinin oldukça hayranıyım. Şimdiye kadar, derlenmiş ctag'ların ikilik etrafını dolaştırabildim ve herhangi bir kütüphane meselesine rastlamadım. Bu, birlikte çalıştığım herhangi bir kod arasında gezinmemi sağlıyor. Genellikle Perl, Python veya C'dir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.