Cara menggunakan Vim dengan cekap
PHP中文网
PHP中文网 2017-05-16 16:42:38
0
18
1597

Pemula baru menggunakan Vim Saya harap anda boleh mengesyorkan beberapa tutorial latihan pengenalan Sekarang saya hanya menggunakan Vim sebagai editor biasa Juga, nampaknya agak menyusahkan untuk kembali ke mod biasa sudut kiri atas papan kekunci Adakah terdapat cara mudah? Pertama, terima kasih!

PHP中文网
PHP中文网

认证0级讲师

membalas semua(18)
为情所困

Saya telah menggunakan vim selama hampir dua tahun dan telah membaca banyak tutorial Secara umumnya, saya masih perlu berlatih lebih sendiri dan menambah fungsi apabila saya rasa ia perlu. Di sini saya akan berkongsi tutorial terbaik yang pernah saya lihat Ia ditulis oleh rakan dari Tieba Ia ditulis dengan sangat baik

Sifar

Belajar menaip sentuh

Mulakan dengan fail konfigurasi yang paling mudah Jangan pertimbangkan untuk mengkonfigurasi pemalam sebelum tahap 5. Jangan menghafal arahan secara langsung Pada asasnya, jika anda kekal dalam mod insert untuk masa yang lama, anda akan merasakan bahawa vim adalah biasa-biasa sahaja dan tidak mudah digunakan,


Pada masa ini, kecekapan penyuntingan mungkin lebih rendah daripada menggunakan editor umum asal Apabila orang lain bertanya editor apa yang hendak digunakan,

Kebanyakan orang akan menjawab: vim dengan nano, kate, kwrite, gedit, geany atau IDE lain


Buat tabiat kekal dalam mod biasa (biasa tidak dipanggil untuk sia-sia Masukkan mod sisip sahaja selepas menaip, segera <ESC>

). Ketahui arahan pergerakan dalam mod biasa Proses standard untuk memasukkan teks pada masa ini:


arahan pergerakan mod biasa meletakkan kursor dengan tepat (ingat, arahan carian juga merupakan arahan pergerakan)
  1. Masukkan penyuntingan mod sisip (jangan hanya gunakan i apabila memasuki mod sisipan, biasakan menggunakan I a A o O s C bergantung pada situasi)
  2. <ESC> Kembali ke mod biasa
  3. Pada masa ini, kesan penyuntingan akan kembali sama seperti editor biasa yang anda gunakan sebelum ini, malah sedikit bertambah baik

Ketahui apa itu operator (arahan d y c, dsb.), apakah itu gerakan (semua arahan yang boleh menggerakkan kursor, h j k l w e f t / ?, dsb.),

Ketahui kaedah operator + gerakan, seperti ct. (Padam kandungan antara kursor semasa dan . (titik) dan masukkan mod sisip untuk bersedia untuk pengubahsuaian)

Belajar perintah Ex asas, :s dan sebagainya

Pada masa ini, kecekapan penyuntingan mula meningkat dengan ketara Apabila menggunakan editor umum yang lain, anda akan mula berasa tidak selesa dan tidak cekap

Ketahui objek teks dan ketahui kaedah pengendali + objek teks untuk melakukan kedudukan dan pengubahsuaian yang tepat melalui pembedahan,

Memandangkan anda kebanyakannya menggunakan c/c++, berikut ialah beberapa contoh yang berguna dalam kes ini:


ci" (terdiri daripada operator perubahan dan teks-objek i")

Arahan ini akan mencari rentetan seterusnya yang disertakan dalam "" pada baris tempat kursor semasa berada, kosongkan kandungan di dalam petikan, dan masukkan mod sisip untuk pengubahsuaian yang mudah

Ia lebih mudah digunakan daripada menerangkan Anda boleh menggunakan const char* hello = "Hello world ."; Kod seperti ini untuk menguji

yaB (terdiri daripada pengendali yank dan objek teks aB)

Arahan ini akan menyalin blok kod di mana kursor semasa berada (kandungan yang disertakan oleh {}, termasuk pendakap kerinting itu sendiri) ke daftar lalai

Adalah mudah untuk menggunakan p untuk menampalnya di tempat lain (sudah tentu, salin dan tampal tidak digalakkan semasa menulis kod), Anda boleh menggunakan mana-mana {} untuk menguji, dan kemudian mencari tempat lain untuk p

gUiw (terdiri daripada operator buat huruf besar dan teks-objek iw)
Arahan ini akan menukar perkataan yang sedang berada di bawah kursor kepada semua huruf besar
Sebagai contoh, tukar max_size kepada MAX_SIZE

Pada masa ini, saya mula memahami mengapa vim adalah tepat dan cekap, dan ia bukan kerana papan kekunci penuh tanpa memerlukan tetikus

Selepas membiasakan diri dengan operator + gerakan, saya mendapati bahawa arahan Berlatih menggunakan kedudukan penanda halaman, q untuk merekod makro, menggunakan berbilang daftar, menggunakan args dan menggunakan penimbal
Gunakan arahan Ex yang lain

Pada masa ini, saya tidak ingat bagaimana saya melalui hari-hari sebelum vim tidak digunakan

LU

Mulakan arahan peta yang sering digunakan berulang kali, mula menulis vimskrip, dan mula tahu jenis pemalam yang anda perlukan

Mari cuba mengesyorkan beberapa:
patogen atau vundle, tagbar, CtrlP, Gundo, UltiSnips, surround, Syntastic, Conque, ack.vim, vim-commentary, fugitive (jika anda pengguna git)
Terdapat banyak lagi, tetapi kebanyakannya tidak membantu secara langsung kepada c/c++, jadi saya tidak akan menyebutnya

Pada masa ini, saya tidak berminat dengan editor lain, kecuali mungkin emacs

Mempunyai vimrc yang diperibadikan sepenuhnya, pada dasarnya memasuki alam transformasi, dan menjadi legenda di dunia

Orang sering memerhatikan anda menyunting, dan anda mendapat inspirasi untuk menjadi bercita-cita tinggi dan ingin belajar vim Selepas mencubanya selama beberapa jam, anda berputus asa kerana anda merasakan bahawa kekunci panas itu tidak "berperikemanusiaan". Tetapi sesekali dia akan menyebut kepada orang bahawa dia pernah melihat orang seperti anda di dunia

仅有的幸福

Saya telah menggunakan vim selama setahun. Saya akan menulis helaian tipu vim beberapa hari yang lalu, jadi saya akan menulisnya di sini terlebih dahulu.

Vim pertama != gvim

1.Cara mengedit

Tekan kekunci ESC pada bila-bila masa untuk memasuki mod biasa, anda boleh menekan: untuk memasukkan arahan.

Tekan i atau a dalam mod biasa untuk memasuki mod sisip, kemudian anda boleh mengedit teks.

2. Suntingan mudah

  • Gerakkan kursor: Anda boleh terus menggunakan kekunci anak panah untuk menggerakkan kursor, cara yang lebih baik ialah menggunakan vim hjkl
  • Simpan fail, dalam mod biasa: w Keluar dari pengeditan: q, paksa simpan: w!
  • Buat asal operasi: u atau tekan u dalam mod biasa
3. Pengeditan lebih pantas

Kini anda boleh menulis dalam vim.

Kami memerlukan penyuntingan yang lebih pantas

1. Letakkan kursor dengan pantas:

    ^ Lompat ke permulaan baris (serupa dengan kekunci fungsi Laman Utama)
  • $ Lompat ke hujung baris (serupa dengan kekunci fungsi Tamat)
  • :n lompat ke barisan n
  • :$ Lompat ke baris terakhir
2. Suntingan pantas:

Dalam mod biasa:

    dd padamkan baris
  • yy salin baris
  • p tampal
  • r penggantian aksara tunggal
3. Tampal dan salin yang lebih canggih:

    m,nd - cepat padam baris m ke n (padam)
  • m,ny - salin baris m ke n (yank)
  • m,nmt - potong garis m ke garisan n ke garisan t (bergerak)
  • m,ncot - Salin baris m ke baris n ke baris t (salin ke)
4 Dalam mod biasa, tekan / untuk mencari ke bawah, tekan ? untuk mencari ke atas

5. Penjajaran
gg=G menjajarkan seluruh fail dengan pantas
6. Operasi label

:tabnew mytab Cipta tab baharu mytab
  • :tabn lompat ke tab seterusnya
  • :tabp lompat ke tab sebelumnya
  • Lompat ke tab seterusnya dan sebelumnya dalam mod biasa dengan gt atau gT
  • 7 Operasi tingkap potong

:split memotong tingkap secara mendatar
  • :vsplit memotong tingkap secara menegak
  • Gunakan kekunci Ctrl-w+anak panah untuk bertukar antara tetingkap pemotongan.
  • 4. Biarkan vim memahami anda dengan lebih baik

Adakah anda perasan bahawa kami tidak menyebut vimrc dan pemalam di atas.

Masanya telah tiba.

Sebagai contoh, kami suka memaparkan nombor baris semasa pengekodan: dalam mod arahan: set nu atau :set number

Mengenai vimrc, terdapat banyak perkara yang patut dipelajari dan dibincangkan Anda boleh merujuk kepada vimrc saya, saya telah membuat ulasan bahasa Cina yang terperinci

5. Perihal pemalam dan tema

vim mempunyai tiga skema warna yang terkenal, solarized, molokai dan badwolf

Mengenai pemalam vim, hanya terdapat beberapa perkataan yang perlu disebut:

Pastikan anda menggunakan vundel untuk mengurus pemalam.

    Jangan ubah suai pemalam orang lain, atau garpu dan ubah suai sendiri, kemudian gabungkan pemalam anda.
  • Anda boleh mempelajari cara menggunakan submodul git untuk mengurus pemalam anda.
  • Okay, jom pergi makan. . itu sahaja.
伊谢尔伦

Tiada apa-apa selain kebiasaan.

" Arrow keys are evil
map <up>    <nop>
map <down>  <nop>
map <left>  <nop>
map <right> <nop>

Selain itu, Ctrl-[ anda juga boleh keluar dari mod pengeditan.

Peter_Zhu

Hai! Saya menyediakan kaedah yang hebat:
Main permainan vim!

Jika anda menggunakan sistem Ubuntu, sila masukkan:

  1. sudo apt-get install vimtutor
  2. vimtutor

Atau melalui permainan web vim yang hebat:

vim pengembara
http://vim-adventures.com/

为情所困

hey~! Saya benar-benar tidak tahu cara menggunakan vim, hanya tangan saya sahaja yang tahu

Jika anda tidak suka menggunakan esc, anda boleh menggunakan <c-c> atau <c-[> dengan kesan yang sama.

Baca lebih banyak petua vim dan ketahui lebih lanjut tentang pelbagai pemalam vim.

Sekali lagi, ia hanyalah editor teks, jangan letakkan kereta sebelum kuda.

Barisan pemisahSebenarnya, saya mengesyorkan koleksi pemalam vim yang dipanggil Janus, yang mentakrifkan dirinya sebagai

Janus: Vim Distribution Ia menyediakan tetapan vim asas yang lengkap dan diperlukan yang kebanyakan orang perlukan Pemalam, dan penyelesaian untuk terus menyesuaikan vim Tidak berguna untuk mengatakan lebih banyak, RTFM.

習慣沉默

Menggunakan vim terutamanya melibatkan penentuan sendiri pelbagai fungsi dan menggunakan pelbagai pemalam. Perkara utama ialah mengkonfigurasi vimrc Anda boleh merujuk kepada vimrc orang lain dan mencari vimrc pada github, seperti https://github.com/search?q=vimrc&ref... untuk melihat cara orang lain mengkonfigurasinya dan menukarnya kepada. anda sendiri.

esc boleh digantikan dengan jj atau jk.

inoremap jk <ESC> 
为情所困

Selepas membaca tutorial terbina dalam (ada versi Cina, pautan muat turun, anda perlu melalui tembok api untuk memuat turun), tetapi anda tidak perlu menghafalnya secara hafalan, cuma ingat apa fungsi yang ada padanya.

Apabila anda menemui tempat yang nampaknya boleh menggunakan fungsi ini, mula menyemak tutorial, dan kemudian perlahan-lahan anda akan menyemak semakin kurang, semakin kurang, dan perlahan-lahan anda akan mengetahuinya.

Contohnya:

Hello World foobar

Jika anda ingin memadamkan foobar, maka anda boleh menggunakan ffdwperintah gabungan ini (f ialah pertanyaan dalam satu baris, dan f selepasnya ialah huruf pertama foober. Ini ialah bahagian pertama perintah itu. Gerakkan kursor ke perkataan foobar, dan d ialah Padam, w ialah untuk memilih perkataan, dan gabungannya adalah untuk memadam perkataan), yang sangat pantas dan merupakan gabungan arahan mudah.

Kemudian jika anda ingin berurusan dengan adegan yang lebih kompleks, seperti

foobar
foobar
foobar
foobar

Hanya padamkan foo sebelumnya dan tinggalkan bar Walaupun vim menyediakan fungsi pemprosesan pada masa ini, kami tidak perlu risau tentangnya. Kami menggunakan fungsi rakaman makro (yang boleh menyimpan operasi anda dan anda boleh mengulanginya) untuk hanya Dengan menggabungkan arahan, anda boleh melakukan banyak kerja rumit

Sebagai contoh, dalam contoh di atas (saya tidak mempunyai Vim pada masa ini, saya mungkin salah dari ingatan),

qa (将命令录制到a这个剪贴板上{vim有好多个剪贴板,比如abcdefg……})
3x (重复三遍删除操作,将foo删掉,其实也可以用f命令来搭配,对复杂的情况更适用)
0 (移动到行首)
j (移动到下一行)
q (停止录制)
3@a (重复三遍刚才录制的命令,3就是将命令重复3遍,@就是运行,a就是刚刚保存的那个剪贴板)

Ini telah diselesaikan.

Vim tidak sukar sama sekali, kerana 90% daripada situasi hanya memerlukan gabungan perintah mudah yang fleksibel.

Status baki 10% juga mudah diketahui dengan menyemak tutorial. Jika anda bertanya kepada seseorang yang boleh menggunakan Vim untuk menentukan arahan, dan membandingkan semua arahan, anda akan mendapati bahawa mereka hanya mengetahui bahagian yang sangat kecil.

我想大声告诉你

Orang di atas telah mengatakannya secara terperinci, tetapi untuk kekunci esc, disyorkan untuk menukar kekunci kepada Caps Lock, yang akan lebih mudah ditekan.

Dikatakan bahawa papan kekunci RMS kelihatan seperti ini semasa menulis Emacs
Jelas sekali, jarak antara Esc dan Control sepatutnya sangat selesa. Jika anda mempunyai wang, beli sekeping HHKB.

阿神

伊谢尔伦

http://vim-adventures.com/
Permainan kecil yang ditulis berdasarkan operasi vim Permainan ini juga mengamalkan operasi vim.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan