Saran untuk entri dalam sysadmins .vimrc

21

Paling tidak saya selalu batalkan komentar "sintaks pada" di / etc / vim / vimrc

Gareth
sumber
Hati-hati, selalu menggunakan sintaks bisa menjadi ide yang buruk jika Anda sering mengedit file besar. Pada file besar (lusinan atau ratusan MB), penyorotan sintaksis dapat menyebabkan vim menjadi tidak bertanggung jawab selama beberapa detik, karena ia memakan banyak CPU. Coba saja edit file XML besar ... Tentu saja Anda selalu dapat melakukan: syn off (setelah vim telah pulih ...).
sleske

Jawaban:

4

CTO kami memiliki konfigurasi Vim yang cukup penuh fitur pada GitHub .

Highlight:

  • Penyorotan sintaksis, 2 tabstop spasi, tab diperluas.
  • NERDtree, tampilan pohon-file yang mirip dengan laci proyek TextMate.
  • FuzzyFileFinder , plugin untuk melakukan fungsionalitas cmd-T TextMate.
  • Banyak sekali tema warna dengan tema yang bagus (senja).

Saya merasa hebat untuk pengkodean Ruby, karena alat administrasi sistem kami ditulis dalam Ruby.

jtimberman
sumber
Saya baru saja bermain dengan sekelompok ini dan ada banyak lagi untuk diselidiki dengan konfigurasi vim yang Anda daftarkan tetapi itu sesuai dengan harapan saya akan standar waras dan fitur yang berguna. Tidak yakin bagaimana wiki komunitas memungkinkan saya memilih 'dijawab' tetapi anyhoo. Terima kasih!
Gareth
17

Pertama, jika Anda memiliki lebih dari beberapa mesin yang bekerja dengan Anda, pertimbangkan untuk menempatkan Anda ~/.vim/, ~/.vimrcdan file lain yang berguna config ( screen, shell Anda, dll) dalam sistem kontrol revisi. Saya lebih suka menggunakan darcs- murah pada sistem Debian (tidak perlu menginstal kompiler Haskell, cukup instal paket langsung), didistribusikan, dan memiliki mode interaktif yang hebat. Jika Anda tahu / suka git, Anda juga bisa tetap menggunakannya.

File konfigurasi saya saat ini tersedia di repositori darcs saya http://repo.harnir.net/,. Beberapa contoh spesifik dari pengikut saya ~/.vimrc. Maaf, tidak ada tautan untuk skrip, dll. Karena saya pengguna baru, tetapi semua yang dapat Anda temukan di http://vim.org/.

Script ViM esensial untuk sysadmin

  • skrip cadangan adalah suatu keharusan, ketika Anda mengedit file jarak jauh. Saya menggunakan skrip cbackup.vim , yang menyimpan 10 salinan terakhir dari setiap file yang diedit di direktori pusat dan secara otomatis menghapus yang lama - cukup masukkan ke ~/.vim/plugins/direktori Anda dan lupakan :-)

  • TaskList memungkinkan Anda dengan cepat mencari FIXME, XXXdan TODOmenandai dalam file saat ini, menampilkannya dan pergi ke tag hanya dengan satu kali penekanan tombol. Jika Anda menggunakan tag ini, pertimbangkan untuk menginstal yang ini

  • dbext sangat penting untuk semua DBA, juga sangat berguna untuk programmer yang bekerja dengan database. Mari kita jalankan query, periksa struktur database dan yang lainnya. Ini pada dasarnya adalah front end alat bantu seperti mysql, sqlite3, sqlplusdan lain-lain. Jika Anda bekerja dengan database, itu suatu keharusan!

File sintaks

Saya belum melihat banyak sintaks yang berguna di alam, kebanyakan file sysadmin bekerja dengan konfigurasi /etcdan biasanya disorot dengan cukup baik. Di saya ~/.vim/syntax/saat ini saya memiliki sintaks untuk warna CSS , yang mengagumkan (juga bagus untuk pengembang web), tetapi sisanya tidak ditulis dengan baik, saya mungkin akan memperbaruinya di waktu luang. Tambahan file sintaks berharga adalah untuk: dhcpd.conf , / etc / network / interfaces , nginx file konfigurasi, dan SpamAssassin local.cf 's.

Kiat bermanfaat dengan sintaks: jika file konfigurasi tidak dikenali (memiliki nama yang aneh, misalnya /etc/apache2/sites-enabled/some.domain.com, Anda dapat menambahkan ekstensi yang benar ke nama itu (dalam hal ini .conf) atau menambahkan modelm ViM di akhir file:

# vim: filetype = apache

Opsi konfigurasi ViM

Sebagian besar opsi konfigurasi sangat populer, seperti set nocompatible rulerdll. Opsi yang sangat baik untuk dimiliki adalah:

  • set gdefault: inverses gmode in s///g- with the option /gakan digunakan secara default, jadi Anda tidak perlu menambahkannya setiap waktu - cukup tambahkan untuk mematikannya

  • set incsearch ignorecase smartcase hlsearch: penting untuk mencari melalui file - inkremental, menunjukkan kecocokan secara waktu nyata, pencarian mengabaikan huruf besar kecuali jika Anda menggunakan huruf besar

  • set pastetoggle=<F6>: atau kunci lain yang Anda inginkan, beralih di antara pastedan nopastemode, suatu keharusan jika Anda menyalin-menempelkan sesuatu dari halaman web seperti ServerFault :-)

  • set noerrorbells visualbell t_vb=: singkirkan lonceng yang mengganggu atau lonceng visual setiap kali Anda melakukan sesuatu;)

Fungsi, pemetaan keyboard

  • rekatkan nama pengguna dan tanggal saat ini ke dalam file, berguna jika Anda bekerja dalam tim dan menambahkan komentar di file tentang siapa yang mengubah sesuatu saat. Cukup tulis xxsigdan tekan spasi, itu akan diubah menjadi sesuatu seperti harnir 20090531. Agar ini berfungsi dengan benar dengan root (mis. Tuliskan nama pengguna Anda alih-alih root), Anda harus masuk menggunakan 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
    
  • Masukkan komentar "garis", seperti # -- Some title -------------------{{{1, panjang 78 karakter - tekan \com#dalam mode normal dan itu dia. Anda akan secara otomatis dalam mode Ganti sehingga Anda dapat menambahkan judul:

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

Anda dapat dengan mudah memodifikasi untuk sistem komentar yang lain ( ", //, dll), atau hanya memeriksa file konfigurasi saya.

Sentuhan akhir

Jika Anda memiliki file konfigurasi di sistem RCS, Anda mungkin ingin terkadang menyertakan opsi konfigurasi khusus untuk mesin tertentu. Untuk itu, ada baiknya memiliki ~/.vimrc.localfile, termasuk secara otomatis di akhir konfigurasi (jika ada, tentu saja).

jika filereadable (rentangkan ("~ / .vimrc.local"))
        sumber ~ / .vimrc.local
berakhir jika
drybjed
sumber
Kiat terakhir - baik meskipun mungkin - tidak berfungsi ketika Anda memiliki direktori home yang di-mount NFS: tidak peduli di mesin mana Anda berada, direktori home Anda akan sama. Perhatikan juga, bahwa tip itu tergantung pada definisi "~" - beberapa shell tidak mendukung steno itu.
Mei
Sebagai sysadmin, Anda mungkin bekerja di server pada akun 'root', yang harus lokal dan tidak di-mount melalui NFS. Dalam hal ini /root/.vimrc.local akan berfungsi dengan baik.
drybjed
6

Tidak begitu yakin bagian mana dari ini yang secara khusus berhubungan dengan sysadmin, tetapi yang terpenting adalah:

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

Saya juga selalu memastikan mesin memiliki akses ke file highlight sintaks nginx .

Adam Gibbins
sumber
Saya hanya mengutarakannya seperti itu untuk memisahkan apa yang secara spesifik terkait dengan 'pemrograman' untuk .vimrc Haruskah saya mengubah pertanyaan?
Gareth
Nah biarkan seperti apa adanya, saya yakin beberapa orang memiliki hal-hal yang berhubungan dengan sysadmin, hanya saja bukan saya.
Adam Gibbins
Secara umum setuju dengan ini ... Tapi tab adalah 8-spasi. Hal lain dan berperilaku berbeda di vim kemudian di less / tail / cat. Mungkin menjadi salah satu dari hal-hal keagamaan itu.
Alexandre Carmel-Veilleux
4

Jika Anda biasanya bekerja pada pengguna, daripada ini memungkinkan untuk "pipa" file ke sudo sehingga dapat disimpan.

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

gunakan perintah:

:w!!

untuk memanggil sudo dan menyimpan file.

quentin
sumber
Menarik. Mengapa Anda menggunakan teebukan cat?
David Schmitt
1
Karena kucing tidak akan menulis apa pun ke file; itu hanya menulis ke stdout.
Chris Jester-Young
cat ->% Bekerja sama baiknya.
olle
2

Steker tak tahu malu. Ini bukan benar-benar perubahan .vimrc melainkan plugin VIM. Saya menggunakan RCSVers pada setiap versi VIM yang diinstal. Pada dasarnya ia menggunakan perintah RCS untuk menyimpan versi file apa pun yang Anda edit. Anda tidak tahu berapa kali saya telah mengacaukan file konfigurasi hanya agar RCSVers menyelamatkan saya dengan menunjukkan kepada saya perubahan yang telah saya buat.

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

JD Frias
sumber
2

Jangan gunakan .vimrc untuk menghindari belajar VIM

Karena saya tahu bahwa banyak pendatang baru VIM akan membaca ini, saran terbaik yang saya miliki adalah: "Jangan malas dan letakkan entri peta di .vimrc Anda" Mempelajari cara-cara tidak standar dalam melakukan sesuatu di VIM akan membuat Anda merasa seperti gimp total ketika Anda tanpa vimrc Anda. Kurva belajar untuk vi curam, tetapi Anda tidak melakukan kebaikan apa pun dengan memilih untuk tidak belajar.

Bruno Bronosky
sumber
1
Vim memiliki fitur yang bagus. Kenapa tidak menggunakannya ?? Ketika Anda harus beralih ke vi, ini bersifat sementara. Jika Anda berpikir Anda harus bekerja keras ketika vim tidak diinstal, ada baiknya untuk menginstalnya.
Luc M
0

Setidaknya sebagian dari jawaban saya sama dengan pemrograman saya .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>

Jika setidaknya beberapa file yang sedang Anda edit tidak ada dalam RCS, mereka seharusnya! :)

MikeyB
sumber
0

Menonaktifkan semua mode lekukan "pintar". Bagus untuk pemrograman, neraka untuk file konfigurasi.

Alexandre Carmel-Veilleux
sumber
0

Saya sering berakhir menggunakan strace untuk melacak masalah aneh. Akibatnya, mencoba sintaks menyoroti beberapa baris bisa menjadi konyol dengan string string yang besar. Karena itu, saya menggunakan set synmaxcol = 2048 untuk membatasi penyorotan sintaksis hingga 2048 kolom.

Saya juga penggemar plugin taglist yang menggunakan tag riang. Sejauh ini saya sudah bisa mendorong binary ctags yang sudah dikompilasi dan belum menemukan masalah perpustakaan. Ini dengan cepat memungkinkan saya untuk menavigasi di antara kode yang saya gunakan. Yang umumnya menjadi Perl, Python, atau C.

jwp
sumber