Vim öğrenmenin faydaları nelerdir? [kapalı]


467

Bir programcı olarak klavyede çok fazla saat harcıyorum ve son 12 yıldır az çok yapıyorum. Tüm bu süre boyunca hiç alışmadığım bir şey varsa, kodlama sırasında yaşadığım bu sinir bozucu ve neredeyse bilinçsiz sürekli mikro kesintiler, en yaygın kod düzenleme görevlerinden bazıları nedeniyle. Farklı bir satırdan (hatta aynı satırdan) basit bir kopyala ve yapıştır veya mevcut konumdan 1 veya 2 satır yukarı veya aşağı hareket etmek çok fazla yazmayı gerektirir veya ok tuşlarının kullanımını içerir ... daha ileri gitmek istediğimde daha kötü - fareyi kullanıyorum. Şimdi aynı senaryoyu bir dizüstü bilgisayarda hayal edin.

Her zaman VIM öğrenmeyi düşündüm ama ustalaşmak için gereken zaman her zaman geri adım atmamı sağladı.

Bunu öğrenmiş insanlardan duymak isterim ve eğer bu olmadan yaşayamayacağınız şeylerden biri haline gelirse.

İş yerinde, birlikte düzenleme kodunu her zamankinden daha hızlı ve daha kolay hale getiren VS2008, C # ve R # kullanıyorum, ancak buna rağmen fareyi kullanmak zorunda kalmadan keyif alabileceğimi düşünüyorum.

Ve ok tuşları bile değil.


7
Klavye ve fare arasında geçiş yapmak zorunda kalmamak kesinlikle güzel. Mac'te, fareyle ekstra hareketten kaçınmak için, BBEdit veya Xcode gibi bir GUI düzenleyicide bile emacs gezinme tuşlarını (örneğin ctrl-A) kullandım.
Craig S

236
Tamamen çabaya değer. Vim öğrenin;)
Kyle Walsh

20
Temel vim'i (vi'yı unutabilirsiniz) birkaç dakika içinde öğrenebilirsiniz, sadece terminalde vimtutor yazın ve temel ile ayarlanacaksınız - gelecek 20 yıl içinde öğreneceğiniz şey tamamen size kalmış. VS2008, C # & R #, klavye ve ok tuşları / fare arasında hareket ederek hayatınızı boşa harcamakla ilgili konularda size nasıl yardımcı olduğunu merak ediyorum.
stefanB

43
Yaptığım en iyi yatırımlardan biri.
Johnsyweb

10
Bu oyunu yedi yaşındaki yeğenimin Vim'de hızlıca hareket etmeyi öğrenmesine yardımcı olmak için oluşturdum: kikuchiyo.org Beta sürümü, ışın kılıcı, sol saldırı için 'i' ve sağ için 'a' ile düşmanlara saldırmanıza izin veriyor : PI Vim'i öğrendi aynı nedenlerle. Alışmak için en zor kısımda dolaşırken buldum. Yardım gerekiyorsa, oyun hızlandırmak yardımcı olur :) İyi şanslar! :)
kikuchiyo

Yanıtlar:


249

Vi ve vim'i de 20 yıldır kullanıyorum ve hala yeni şeyler öğreniyorum.

David Rayner'in en iyi Vim İpuçları sitesi mükemmel bir listedir, ancak vim'e aşina olduğunuzda muhtemelen daha yararlıdır.

Ayrıca vi / vim ipuçları ve özellikle makalede bazı büyük bilgiye sahip ViEmu sitesinden bahsetmek istiyorum Neden, oh NEDEN, bu nutheads vi kullanıyor? ( arşivlenmiş sürüm )


8
Evet, ben de her zaman yeni şeyler öğreniyorum. Yine de benim en sevdiğim editör.
Craig S

20
Bunun iyi bir şey mi yoksa kötü bir şey mi olduğunu merak ediyorum. Sürekli yeni şeyler öğrenirseniz, öğrenme eğrisi GERÇEKTEN diktir, özellikler GERÇEKTEN gizlidir ve ustalık duygusu yoktur. Her neyse, RISC istiyorsan, vim yerine vi ile gittin, değil mi?
bastibe

7
@Paperflyer: Aynı düşüncelerim vardı. 20 yıl sonra hala hakim değilseniz, bu istediğimden emin değilim
Dinah

7
Nasıl yani? Bu, çok fazla özelliğe sahip olmasına rağmen öğrenmeye devam edebileceğiniz anlamına gelir, ancak daha üretken olmak için hepsini öğrenmek zorunda değilsiniz.
Arda Xi

5
"Neden, oh NEDEN bu nuthead'ler vi kullanıyor?" - İyi soru, özellikle soru için

184

Onsuz yaşayabilir miyim? Kolayca.

Yararlı mı? Evet.

Öğrenme Nedenleri

  • vi'nin tüm Unix sistemlerinde ve çoğu Linux sistemlerinde de var olduğu garanti edilir. Bu tür geniş kapsam, öğrenmeyi buna değer kılar.

  • Bir sudodüzenleme için vi kullanmak çok daha hızlıdır :

    $ sudo vi

  • Ayrıca, GMail e-postaları seçmek ve taşımak için vi-ish komutlarını kullanır!

Usta olmanıza gerek yok.

Sadece öğren

Temeller:

  • Komut modundan ekleme moduna nasıl geçilir i
  • Ekleme modundan komut moduna nasıl geçilir Esc
  • Komut modunda bir satırda nasıl gezinilir k
  • Komut modunda bir satırda nasıl gezinilir j
  • Komut modunda bir karakterde nasıl gezinilir h
  • Bir karakterde nasıl gezinilir l
  • Dosya nasıl kaydedilir :wEnter(yazma)
  • Kaydetmeden nasıl çıkılır (komut modunda) :q!Enter
  • Nasıl Geri Alınır u
  • Yeniden Yapma Ctrl+r
  • Yazma ve bırakmayı birleştirebilirsiniz (komut modunda): :wqEnter

Oradan geri kalanı sizi daha hızlı hale getirecek.


Her zaman "vi kolaydır; imleci sağa hareket ettirmek için ell tuşunu kullanmıştım". Ama uzun zamandır kullanıyorum ve onsuz olmaz. Yine de başka bir çift için 25+ yıl talep edemez, bu yüzden, benden yeni bir cevap yok.
Jonathan Leffler

16
Ben böyle öğrendim. Minimum ile başlayın ve her gün biraz inşa edin. Bir görevi gerçekleştirmenin biraz daha iyi bir yolunu öğrenmek için zaman ayırın. İlham almak için "7 metin düzenleme alışkanlığı" konusuna bakın.
Ben

Gmail, Google deneysel arama klavye kısayolları, Slashdot klavye kısayolları, insan ve daha azı vim benzeri bağlantılar kullanır. Vim bilmeden bunları yanlışlıkla öğrendiğimi keşfetmek beni şaşırttı! Firefox bile artımlı arama için / kullanır (Ctrl + F'den biraz farklı semantiklerle).
Adam Rosenfield

29
[:] [X] [Enter], [:] [W] [Q] [Enter] ile aynıdır
Vitalii Fedorenko 6:10

20
[Z] [Z], [:] [X] [Enter] ile aynıdır
Kos

138

Vimtutor ile koşmak sadece 30 dakika sürdü, bu da vim'i tanımak için yeterliydi. Her saniye değdi.


Daha iyi bir açıklayıcı bağlantı biliyorsanız, lütfen benimkini değiştirin :)
Blorgbeard

43
vimtutor tam olarak bu, bir öğretici. Her gün yaklaşık 10 gün boyunca yaptım. İlk kez 30 dakika, ertesi gün 20, sonra 15 dakika sürdü. Bence ezberlemeye çalışmak yerine tekrar Vim'e yaklaşmanın en iyi yolu. Bir hafta boyunca her gün 15 dakika gerçekten küçük bir fiyat gibi görünüyor.
Michael Ekoka

28
VIMTUTOR ile işimiz bittiğinde ne olacak? Daha fazla bilgi edinmek için bir sonraki adım nedir?
privatehuff

3

1
Vaov! bu oyundaki gizli eşyalardan birine benziyordu. Sistemimde tam oradaydı ve var olduğunu bilmiyordum. Vim'in en kullanışlı ve hızlı öğreticilerinden biri. Bir süre vim kullanarak hala bilmediğim birkaç temel püf noktası öğrendim. herkese tavsiye ederim. Ayrıca küçük bir öneri: dokunmatik yüzeyli bir dizüstü bilgisayarda vim kullanıyorsanız ve hareketleri destekliyorsa, vim kullanmadan önce devre dışı bırakın çünkü yanlışlıkla dokunduğunuzda imleci beklenmedik yerlere bazen iyi bir düzenleme harcayabilir.
Barracuda

69

Çok fazla metin düzenleyen bir programcıysanız, Ciddi Bir Metin Düzenleyici öğrenmek önemlidir. Hangi Ciddi Metin Editörü'nü öğrendiğiniz son derece önemli değildir ve büyük ölçüde düzenlemeyi beklediğiniz ortam türlerine bağlıdır.

Bunun nedeni, bu editörlerin çok yapacağınız görevleri yerine getirmek için son derece optimize edilmiş olmalarıdır. Örneğin, her satırın sonuna aynı miktarda metin eklemeyi düşünün. Bu Ciddi Metin Editörü'nde önemsiz olmakla birlikte, gülünç derecede hantal.

Genellikle vim'in katil özellikleri göz önünde bulundurulur: A) karşılaşacağınız hemen hemen her Unix'te mevcut olduğu ve B) parmaklarınızın çok nadiren ana satırdan ayrılması gerekiyor, bu da metni çok çok hızlı bir şekilde düzenleyebileceğiniz anlamına geliyor . Büyük dosyaları düzenlerken bile genellikle çok hızlı ve hafiftir.

Bununla birlikte, birçok alternatif var. Emacs, elbette en yaygın örnektir ve gerçekten içine girerseniz sadece gelişmiş bir metin düzenleyicisinden çok daha fazlasıdır. Ben vim / gvim kullanarak yıllar sonra şahsen çok mutlu bir TextMate kullanıcısıyım.

Bunlardan herhangi birine geçmenin hilesi, onları istedikleri gibi kullanmaya zorlamaktır. Örneğin, vim'de, her adımı çok adımlı bir işlemde elle gerçekleştiriyorsanız veya ok tuşlarını veya fareyi kullanıyorsanız, muhtemelen bunu yapmanın daha iyi bir yolu vardır. Yaptıklarınızı durdurun ve bakın.

Başka bir şey yapmazsanız, her yerde göründüklerinden hem vim hem de Emacs için temel gezinme denetimlerini öğrenin. Örneğin, You vim tarzı kontrolleri kullanabilirsiniz vb Eclipse, en Unix kabuklarda, Mac OS herhangi bir metin giriş alanına Emacs tarzı kontrolleri kullanabilirsiniz az üzerinde, (1) komutu Slashdot üzerinde, gmail , vb.

İyi eğlenceler!


7
Bunun içinde birçok insanın göz ardı ettiği bir nokta var. Hemen hemen her tekrarlayan görevin bir kısayolu vardır. Geliştiriciler kısayolları sever. Rbright'ın dediği gibi, kendinizi tekrar tekrar bir adım gerçekleştirirken bulursanız, durdurun ve birisinin zaten bir kısayolu belgelediğini görün.
AvatarKava

A) VIM kullanmamın en büyük nedenlerinden biriydi - Aslında bir emacs adamıydım, ancak tüm sistemlerde yoktu ve bazen ağ veya meşgul sunucularda yavaştı. VIM her yerde bulunur, küçük ve hızlıdır.
jpeacock

3
Editörüm sürekli kötü şakalar yapıyor. Geçmeliyim.
Greg Graham

Bana "Çok fazla metin düzenleyen bir programcıysanız, Ciddi Bir Metin Editörü öğrenmek önemlidir." En kötü yanı, neredeyse tanım gereği, içeride ve dışarıda iki (çok daha az) öğrenmek imkansız görünüyor. Bir noktada son vakaları inceliyorsunuz ve Görev X'u birinde nasıl gerçekleştireceğinizin bilgisi genellikle tercüme edilmiyor. Ve her zaman "saçak" editörlerde yaptığım şeyler - Hala JTidy JTidy, Code2HTML, birden fazla dosya aramak için, örneğin kullanıyorum. Ana karakteriniz bir zar, ve gümüş mermi yok, ama evet, kesinlikle bir tane öğrenin ve birçoklarıyla oynayın. ; ^)
ruffin

1
@ruffin Doğru, aynı anda iki farklı editörde ustalaşamazsınız: bir editörde ustalaşırsanız, komutlarının çoğunu bilinçsizce kullanacaksınız ve bu da büyük olasılıkla diğer düzenleyiciyi kullanırken aynı komut. Basit bir şekilde girintileri düzeltmeme izin vermediğim için tarayıcımı kaç kez lanetledim <esc> >i{... Bu, dokunmatik yazmayla gerçekten aynı: tek bir klavye düzeni öğreniyorsunuz ve buna bağlı kalıyorsunuz çünkü asla durduramayacaksınız farklı bir düzene yanlış tuşlar yazmaktan kaçınınız.
cmaster

36

Bu var kesinlikle çabaya değer.

Kullanan herkesin Vi(m)size söyleyeceği açık bir neden ve insanların hiç bahsetmediği iki kişi daha var.

İşte açık olan:

  1. vi bir anda her yerde ve inanılmaz derecede güçlüdür ve bir kez öğrenerek, klavyeye sahip hemen hemen tüm bilgisayarlarda bu gücü kullanma yeteneği kazanırsınız.

Ve bunlar daha az bilinen nedenlerdir Vim:

  1. Tahmin edeceğinizin yarısı kadar çaba değil. Vim eğitmenini bir kez çalıştırın ( vimtutorbir kabukta veya Windows'da Başlat Menüsü'ndeki Vim klasöründen çalıştırın) ve zaten yetkinlik yolunda ilerliyorsunuz ve hepsi oradan yokuş aşağı. VimBir haftalık öğle yemeğinden daha kısa sürede gözle görülür bir verimlilik artışı olmadan işte kullanabileceğim seviyeye geldim .

  2. Çok eğlenceli ! Metin düzenlemek benim için bir oyun gibi . Aktif olarak zevk alıyorum - düşündüğünüzde oldukça saçma.

Öğrenmemek için iki iyi neden var Vim:

  1. Bağımlılık yaratır ve kendinizi tüm bilgisayarlarınızda Vimkomutları kullanabileceğinizi ve yapamadığınızda küfrettiğinizi göreceksiniz. Neyse ki, bazı durumlar için en azından orada yollarını almak için etrafında bu .

  2. Yine, bağımlılık yapar ve gerçekte kullanmaktan herhangi bir üretkenliği kaybetmemenize rağmen Vim, Vimdeneyiminizi daha da iyi hale getirmek için iyi ipuçlarını aramak ve Stack Overflow'daki Vim etiketini okumak için saatler harcarsınız.


12
Haha 2 numaralı nedenleri "değil" VIM öğrenmek için çok doğru. Tüm bu süre boyunca metin düzenlemeyi kaydediyorum, metin düzenlemesi hakkında okuma harcıyorum. Saçma.
Karl Floersch

Evet, ben ... hjkl kullanarak stardew vadi oynamak diledi
XIS

32

Kesinlikle vim veya emacs öğrenmeye değer. Ayrıca dokunarak yazmayı öğrenmeye değer. Her iki durumda da nedenler aynıdır: kodunuzu ekrana getirme mekanik işlemiyle düşünmeniz artık kesintiye uğramaz .

Nasıl başlayacağınızla ilgili olarak, dalın ve her şey için vim kullanmaya başlayın.

PS emacs-vs-vi tartışması sonsuz. 26 yıldır emac kullanıyorum. Bugün tekrar başlasaydım vim öğrenirdim çünkü (a) daha iyi hale geldi ve (b) çok daha az değiştirici anahtar (Ctl-Alt-V, herkes) var ve vim kullanıcıları çok daha az yazarak yaralanma görüyorlar.


RSI, geliştiricilerin mesleki tehlikesidir. Hiç böyle düşünmemiştim ama eminim ki bu gerçekten iyi bir nokta. Akorları kas açısından yazmak çok daha zordur. Vi kullanmak için katil bir neden olduğunu biliyordum!
DigitalRoss

1
İkisini de kullandım, vim ile "vaftiz oldum" ve birkaç ay önce emacs öğrendim. Vim'i tercih ediyorum çünkü görevler bozuldu - ikisini birden yapmıyorsanız, düzenleme veya ekleme yapıyorsunuz. Bu ayrım ne yaptığımı düşünmeme yardımcı oluyor ve "normal" komutları 2-4 yerine 1-2 tuş vuruşu yapıyor. Keşke vim Lisp tabanlı olsaydı (ve hayır, engerek modu tüm vim standart özelliklerimi desteklemiyor. Evet, kendim dönebilirim, ancak yeni bir bilgisayara / sisteme dokunduğumda onları kaçırırdım)
Wayne Werner

1
@WayneWerner Gerçekten modası geçmiş, ancak tüm elisp'inizi kontrol edebilir, böylece bilgisayarlarla senkronize edebilirsiniz.
YuriAlbuquerque

@YuriAlbuquerque, aslında tüm otomatik dosya kurulum komut dosyası oluşturma, tüm nokta dosyalarımı github veya başka bir şey üzerinde tutmayı çok ciddiye almaya başladım.
Wayne Werner

17

Yalnızca 16 tuşlarının anlamlarını öğrenerek vim iyi işlevsellik out alabilirsiniz: ijkdbw9:q!%s/nNEsc. Çıplak kemikleri sadece ile yapabilirsiniz i:wqEsc.

Bilmeniz gereken ilk iki anahtar şunlardır: Escsizi komut moduna (başlattığınız mod) igötürür ve sizi moda (normal yazma) girmeye götürür.


Tasarruf etmek için

  1. yazma modundan çık ( Esc)
  2. iki nokta üst üste koy :
  3. wsonra küçük harf yazınEnter

Kaydetmek ve çıkmak için aşağıdakileri yapmanız gerekir:

  1. yazma modundan çık ( Esc)
  2. iki nokta üst üste koy :
  3. wqsonra küçük harf yazınEnter

Kaydetmemek ve zorlamaktan vazgeçmek için

  1. yazma modundan çık ( Esc)
  2. iki nokta üst üste koy :
  3. q!sonra küçük harf yazınEnter

Daha fazla bilgi edinmek vimtutoriçin komut satırında çalıştırabilirsiniz . Orta uzunlukta, iyi yapılandırılmış bir derstir.

Ötesinde ive Esc: yalnızca bazı MS Word işlevlerini çoğaltabilir veya aşabilirsiniz jkwbd3:%s/nN.

  1. bbir kelimeyi geri götürür ( Ctrl+ )
  2. wbir kelime ileri götürür ( Ctrl+ )
  3. 9w seni dokuz kelime ileri götürür
  4. dbönceki kelimeyi siler ( Ctrl+ Backspace)
  5. d3b önceki üç kelimeyi siler
  6. 9j 9 satır aşağı iner
  7. / ornithopter EnterDaha sonra kelime "Ornitoloji", bir sonraki örneğine götürür nve Nsırasıyla "Ornitoloji" bir sonraki ve önceki oluşumuna.
  8. :%s/confounded/dangfangled/ EnterHer (gibi "dangfangled" ile "gülümsetti" bunun yerini find and replace allMS Word)

Bunlardan herhangi biri "(" komut "modunda ( Esc), mod ( i) yerine çalıştırılmamalıdır.


16

Kısa süre önce VIM'e geçtim ve bence buna değer. "Sadece bir şeylerin yapılması" gerekiyorsa, her zaman vim'in (çoğunlukla) normal bir metin düzenleyicisi gibi olduğu ekleme modunda kalabilirsiniz.

Beni rahatsız etmek için kullanılmayan şeylerin ok tuşlarına ulaşmak gibi, şimdi yanlış hissettiklerini ve çok fazla çaba harcadıklarını fark ettim. Kesinlikle el hareketimi ve fare kullanımını azalttı, bu da hem ergonomi hem de üretkenlik için iyi


12

VIM ile ne yapmak istediğinize bağlıdır. Bunu öğrenmek mantıklı değil çünkü birçok insan onsuz yaşayamaz.

UNIX ortamlarında çok çalıştığımda, onsuz yaşayamazdım. VIM bir UNIX makinesine kurulmamış olsa bile, en azından vi kullanabilirsiniz. Her zaman ona güvenebilirsiniz - makine sizin olmasa bile (müşteriye ait).

Şimdi C # programlamak ve çoğunlukla windows ortamında çalışıyorum. VIM'i bilgisayarıma kurdum ... ve buna ihtiyacım yok.

Gerçekten VIM'e ihtiyacınız olup olmadığını ve "iş akışınızda" sizi destekleyip desteklemediğini değerlendirin. Denemek. Onunla oyna. İhtiyacınız olduğunu düşünüyorsanız, ona sadık kalın ... öğrenme eğrisi çok dik.


VIM kullanıcıları için bir görsel stüdyo uzantısı var, bunu visualstudiogallery.msdn.microsoft.com/…
yoel halb

10

Vi öğrendim çünkü yapmak zorundaydım.

Çılgın öğretmenim bizi AIX sistemine bir terminal kullanarak C'de programlamayı öğrenmeye zorladı.

Bu gerçek bir acıydı, ama buna değer.

Bugün, vi'yi hızlı düzenlemeler veya küçük programlar için kullanıyorum.

Bir projeye gitmem gerektiğinde, IDE kullanıyorum. Benim durumumda IntelliJ fikri görevde çok iyi, çünkü fareyi tutmadan saatlerce kod yazabilirim.

VS2008'in ne kadar kısayolu olduğunu bilmiyorum, ancak Eclipse kadar keşfedilebilirlerse, sanırım vi için gidin.

IDE dışında kodu DÜZENLEMİYORSANIZ ve IDE'nizin iyi kısayolları varsa, bunları öğrenseniz iyi edersiniz ve yine de vi'yı öğrenin.

:)


Bir görüş değil, VIM'in faydalarını istedi.
Blaze349

@ Blaze349 hayır, insanlara nasıl öğrendiğini duymak istedi (buradaki orijinal gönderiye bakın) , tam olarak cevapladığım şeydi. Bu soru neredeyse 8 yaşında ve yıllar boyunca birkaç inceleme yapıldı, cevabım orijinal ile eşleşti. Yorum yaparken bunu göz önünde bulundurun.
OscarRyz

9

25 yıldan fazla vi / vim kullandım. Zaten bir komut satırı editörü biliyorsanız, belki vi / vim öğrenmeniz gerekmez. Ancak başka bir komut satırı düzenleyicisini çok iyi bilmiyorsanız, öğrenmeye değer. Vi / vim'de az çaba ile üretken olmak oldukça kolaydır.


6

Şimdi VIM'i hemen hemen kullanıyorum.

Düzenleme için Vim ve hata ayıklama için VS Editor kullanıyordum. Bu muhtemelen biraz çılgınca görünüyor, ama Vi paradigmasını (makrolar, ev anahtarı tabanlı düzenleme vb.) Verimliliğimde böyle bir artış buldum, VS'de düzenleme yapıcıydı.

Viemu sayesinde, artık geçişi yapmak zorunda bile değilim. Henüz mükemmel bir çözüm değildir (kod tamamlama bazen yerel vim kadar zarif değildir ve makro kaydı mükemmel değildir), ancak sürekli olarak ileri geri geçiş yapmaktan çok daha iyidir.

Vim için öğrenme eğrisi muhtemelen abartılmıştır. Sanırım içine girdikten sonra oldukça sezgisel.


5

İşim beni vim almaya zorladı ve hızla ikinci doğa oldu. Şimdi şikayetlerim vim emülasyonu veya eklentileri olmayan IDE'lerle ilgili. Esc anahtarının vim dışındaki düşmanım olduğunu fark ettim.

Visual Studio içinde vi için birkaç emülatör buldum:

http://code.google.com/p/vim-visual-studio/


4

Öncelikle iyi vi (m) bilgisi, seige altındaki bir sunucuda yapılandırma dosyalarının acil durum düzenlemesini yapmak için acele etmeniz gereken zamandan tasarruf etmenizi sağlayacaktır. Uzun süreli bir ssh bağlantısına dayanabilir.

Vim'in giriş yöntemini bir kenara bırakın, ergonomik bir klavye ile etkili bir şekilde kullanırsanız karpal tünele karşı en iyi savunmanız olacaktır.

Vim noktasını görmenin en iyi yolu evde rahat bir projeye başlamak, farenizi ve kasetinizi ok tuşlarının üzerine çıkarmaktır.

Ve yardımı okuyun


4
Ayrıca Vi giriş modelini kendinizi karpal tünel sendromundan korumak için harika buluyorum ...
CMS

ok tuşları? .vimrc: deneyin <up> <nop> harita <down> <nop> harita <left> <nop> harita <right> <nop> imap <up> <nop> imap <down> <nop> imap < left> <nop> imap <right> <nop>
sjas

1
nanoVim'den çok daha kolay ve neredeyse eşit derecede yaygın olan bir noktaya dikkat çekerim.
MightyPork


4

Uzak bilgisayarda çok büyük bir linux projesi sürdürüyorum. Eclipse veya benzeri GTK tabanlı IDE'yi kullanma seçeneği yoktur. Orada 3 yıldır çalışıyorum. Ve vimimi sadece bu proje için ayarladım. Ve hala ince ayar yapıyor.

Şimdi Vim'den herhangi bir şey yapabilirim: kaynak kontrolü, sql, hata ayıklama, derleme, tarama - 1Gb kaynak kodu üzerinde gerçekten hızlı tarama.

Visual Studio veya Eclipse bunların hepsini işleyemedi. Ve eğer bir seçeneğim olsaydı, Vim'i başka bir editör veya IDE ile değiştiremezdim.


4

Vim'i öğrendim. Çok fazla çaba değildi. Şimdi kesinlikle ci "ci (cw V: s / from / to / g


3

Vimin kesinlikle öğrenmeye değer olduğunu söyleyebilirim. Geçen yaz aldım ve şimdi hemen hemen her şey için tercih editörüm (java bir streç, ancak kapsamlı analiz desteğine ihtiyacım olmadığında yapılabilir). Herkesin zaten onayladığı gibi, bu harika verimli bir araçtır.

Değeri için, sadece grafiksel bir öğreticiden (bir veya iki gün sürdü) vim özelliklerinin oldukça küçük bir alt kümesini öğrendim ve birkaç olasılık ve buradan bitiyor (uzun okuma) ve arama ve değiştirme işlevselliği ve ben bağlandı. O zamandan beri bir şeyler öğrendim, ama boş zamanlarımda. Öğrenme eğrisinin bu noktada düzleştiğini söyleyebilirim, ama sonra, onu oldukça yoğun bir şekilde kullanıyordum ve etrafındaki insanlar tarafından çevriliydi.


3

Sizinle aynı durumdayım ve Vim'e yeni başlayan biri olarak başlangıçta biraz ürkütücü buldum - öğrenme eğrisi dik görünüyor. Birkaç saat içinde öğrendiğim kadarıyla, onsuz yaşayamayacağım gibi hissediyorum.

İşte olan bir kaç bağlantılar kullanışlı Vim Screencasts bunun neler yapabileceğini göstermek için ben buldum.

Bram Moolenaar'ın (Vim'in hayırsever diktatörü) bu son bağlantıda verdiği iyi bir tavsiye, her bir komutu ve işlevi öğrenmeye çalışmanın verimsiz olacağıdır, sadece ne yaptığınızı anlayın. çok iyi çalışıyor, daha verimli hale getirmenin ve sonra alışkanlık haline getirmenin bir yolunu ara.


3

Evet, kesinlikle en azından biraz 'vi' ve 'vim' öğrenmek için zaman ayırın. Çok iyi seyahat ediyor.

Yükleme yeteneklerine sahip olmadığınız bir müşteri Unix / Linux / Mac sistemi ile karşılaştığınızda asla takılmayacaksınız. Windows'ta bile (yükleme yetenekleriniz varsa) 'Vim' ücretsiz ve kurulumu kolaydır. (Öğrenme eğrinizi tamamen UltraEdit gibi bir şeye yatırmanın aksine, mükemmel bir düzenleyici her zaman sizin için mevcut olmayabilir ...).

Vi öğrenmek, sizi 'sed' ve genel olarak normal ifade gibi diğer araçları öğrenmek için ayarlayabilir: genellikle aktarılabilir şeyler.

Artı uygun bir inek olmak istiyorsanız, sadece 'vi / m' bilmeniz gerekir ya da bir faker ;-) gibi görüneceksiniz.


2

Bence vim öğrenmek için kesinlikle zaman ve çabaya değer. Bana göre, metni yazmayı ve dolaşmayı çok verimli hale getiriyor, emacs veya ctrl / shift / alt / meta anahtar kombinasyonlarına geri dönmeyi hayal etmek zor.

Vim'in tüm fantezi özelliklerinden korkmayın. Yeterince kullandıktan sonra, en çok hangi komutları kullandığınızı ve hangi şeyleri unutabileceğinizi anlayacaksınız.


2

Vim'in inanılmaz yaygınlığı ve genel olarak Vi-klonların sadece Unix sistemlerinde daha da şaşırtıcı yaygınlığı, öğrenmeye değer hale getirmek için yeterlidir.

Bunun yanı sıra, tüm Vi tarzı düşünce, gerçekten beni biraz daha üretken kılan bir şey. Komut modu ve ekleme modu gibi modlara alışkın olmayan bir kişi için, sadece metin eklemek için bir moda girmek biraz fazla gibi görünüyor. Ancak, bir kişi Vim'i birkaç ay boyunca kullandığında ve birkaç ipucu ve püf noktası öğrendiğinde, Vim buna değer gibi görünen bir varlık gibi görünüyor.

Tabii ki, Emacs kalabalığı Emacs tarzı düşünce için de aynı şeyi söylüyor, ama Vim daha basitti ve benim için işi yaptı çünkü Emacs öğrenmekten vazgeçtim.


2

Çok yetenekli birini izledikten sonra vi gibi sevmeyi öğrendim, delicesine hızlı bir klipte düzenlemeler yapmak için dolaşın. Gerçekten hızlı bir şekilde kodlayabilirsiniz. Sevmemin bir başka nedeni, bazen bir IDE'de etrafta dolaşmanın bir süre sonra gerçekten ellerime zarar verdiğini ve vi'nun hoş bir değişiklik sağladığını bulmam. Diğerlerinin de belirttiği gibi, neredeyse her zaman unix sistemlerinde kullanılabilir ve berbat bağlantılar üzerinde bile iyi çalışır.

Bahsetmediğim bir şey, vi bilmenin bazı çevrelerde "geek kredisi" nin ek faydasına sahip olmasıdır. Yeni bir programcı bir dosyada bazı değişiklikler yapmak için ateşlendiğini gördüğünde kıkırdayan en az birkaç kişiyi düşünebilirim.


2

Komut sayısından korkmayın, en fazla birkaç düzine kullanan kimse ile tanışmadım. Bunu vazgeçilmez buluyorum, çünkü kod hakkında düşündüğümde metni düşünüyorum, fareler hakkında düşünmeye geçiyorum sadece beni karıştırıyor. Büyük hileler, sanırım, her seferinde biraz öğrenmek ve oynamak için tereddüt etmeyin - geri alma özellikleri davranışlarını keşfetmek için harika.

Ayrıca, içine derinlemesine girerseniz, vim yazılabilir. Olanaklar tam anlamıyla sonsuzdur.

(Evet, tüm bunlar emacs için de geçerlidir ...)


2

Linux altında çalışan sunucularla çalışmaya başlayıncaya kadar textpad ve ecplise dünyamda mutluydum. Uzaktan komut dosyası oluşturma ve yapılandırma dosyalarının ayarlanması gerekiyordu!

Başlangıçta zordu ama şimdi kolayca kurabilir ve sunucularımı ayarlayabilirsiniz.


2

Vim öğrenmek isteyebilirsiniz çünkü zaten kullandığınız editörlerden memnun olmayabilirsiniz.

Vim öğrenmek isteyebilirsiniz çünkü birçok insan havalı olduğunu söylüyor. Sadece bu soruya kaç cevap aldınız.

Vim öğrenmek için ek bir neden sunacağım. Dokümanlarının kalitesi ve bütünlüğü ile ünlüdür. Böylece, yardım sorgularınıza uygun anahtar kelimeleri yapıştırmayı başaracak olursanız, sorularınızın çoğuna cevapları yardım sisteminde bulabilirsiniz.


2

Vi (m) hızlı öğrenmek için önce tüm tasarımı anlamak gerekir. Vim'in çok sayıda imleç hareketi komutu vardır, birkaçını kontrol edin (X bir karakterdir, # rakamdır):

jk okları girin 0 $ w W b B kontrol crtolU kontrol Kontrol HML fX FX tX TX,; % gg G n N mX 'X' '

ve daha birçokları numaralandırmak sıkıcı olurdu. Bunların birçoğu komuttan önce bir sayımı destekler, örneğin 4j 4 satırı yukarı taşır.

Şimdi, tasarıma dönünce, silmek için d gibi bir komut ve ardından bir imleç hareketi yazıyorsunuz ve komut imleç konumundan hareket sonuna kadar metin parçası için geçerli. Örneğin, H ekranın en üstüne taşınır, dH ekranın en üstüne silinir ve cH ekranın en üstüne değişir (yer değiştirir).

Bu tasarım oldukça güçlü. Ayrıca öğrenmeniz gerekeni azaltır veya düzenler. Kesinlikle ilk adım birkaç imleç hareket komutunu öğrenmek. Diyelim ki önce 8 veya 10. O zaman neredeyse bitti.


2

Yeni bir şeyler öğrenmek her zaman çabaya değer, IMHO. Bir hile sayfası yazdırmanızı ve kendinizi her gün ve her gün kullanmaya zorlamanızı öneririm.


Çince'de birisinin bir öğretmenden ejderhaların nasıl kasaplanacağını öğrendiğini söyleyen bir hikaye var. Eğitimden mezun olduktan sonra, kasap için hiçbir zaman gerçek ejderha bulamaz. Ben vi demiyorum ama bu hikayenin ahlakı bazen bir şeyler öğrenmek sadece zaman kaybıdır.
Dünya Motoru

2

Vim kesinlikle burada daha önce belirtilenleri kısmen özetlemeyi öğrenmeye değer ana nedenler:

  • Vi / Vim çoğu unix sisteminde bulunabilir.
  • Vim, ellerinizi klavyeden çıkarmadan kolayca kod yazmanıza olanak tanır.
  • Unix tabanlı bir sistemde herhangi bir şeyi yapılandırmayı planlıyorsanız, birkaç yapılandırma dosyasını düzenleyeceksinizdir, bu nedenle vim'in en iyilerinden biri olan terminal tabanlı bir editör öğrenmek isteyeceksiniz (üzgünüm emacs).
  • Vim, hemen hemen her işletim sistemi için ikili dosyaları derler / derler. "[OS ekle] için bir metin arkadaşı alternatifine ihtiyacım var" yayınlamaya gerek yok, bunun yerine Vim var!
  • Editör cvs diffs gibi bir çok işlevsellik eklemek için çok sayıda iyi eklenti var, ancak bunların bazıları adil miktarda tinkering gerektiriyor.

Ayrıca bir yan notta, Vim anahtar bağlarını seviyorsanız, basit komutlar için editörlerine örneğin Komodo Edit gibi vim bağlamaları içeren IDE'ler de vardır .

Vim öğrenme konusunda yardım için terminalinize 'vimtutor' yazmayı deneyin ve talimatları izleyin. Hacking Vim'in özellikle iyi olduğu bir kitap da var


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.