Vim'de daha iyi olmak [kapandı]


116

Vim'i uzun süredir kullanıyorum, ancak çoğu zaman ekleme modunu kullandığım bir seviyedeyim ve hala gezinmek için ok tuşlarını kullanıyorum (!).

Sevgili editörümden en iyi şekilde yararlanamadığımı hissediyorum, özellikle de gezinme (özellikle kod), kopyalama ve yapıştırma ve mevcut kodun diğer manipülasyonlarını yapma konusunda. (karmaşık arama / değiştirme modellerinde oldukça rahat olsam da).

  • Daha fazlasını öğrenmeye nasıl başlamalıyım?
  • İnsanlar hangi kaynakları tavsiye eder?

8
Ok tuşlarını dolaşmak için kullanmanın nesi yanlış? Onlar bunun için !
Vilx

39
@ Vilx, bilgisayar aksiyon oyunlarında bile ok tuşlarıyla hareket etmiyorsunuz ! Bırakın metin editörleri ...
P Shved

6
@Vilx: Klavyedeki ok tuşları, her türlü gezinme için korkunç derecede uygunsuz bir yerdedir. Bu yüzden ViM'deki kural, tıpkı birinci şahıs oyununda WASD'yi kullandığınız gibi HJKL kullanmaktır.
Will Vousden

4
Sağ el fareyi kontrol ettiğinden, WASD oradadır çünkü sol elle kullanmak daha kolaydır. Sol elini kullananlar okları kullanır. Ve HJKL çok sezgiseldir. Hangisi nereye hareket eder?
Vilx

8
Bence bu "oklar ve hjkl" ile ilgili değil, çünkü "imleç hareketi ve metin nesneleri".
Matteo Riva

Yanıtlar:



66

İşte size bundan sonra ne öğreneceğiniz konusunda bir fikir vermesi gereken harika ekran videolarını burada bulabilirsiniz . Orta ve ileri düzey konular için videolar da var, ancak acemiler aslında en önemlileridir.

Ayrıca, durgunlaştığımı ve "Vim yolunu" gerçekten öğrenemediğimi hissettiğimde, hem normal hem de ekleme modunda ok tuşlarını devre dışı bırakmayı seçtim. Bu sizi bir yere varmak için ESC kullanmaya zorlar ve daha Vim benzeri düşünmenizi sağlar. Sonunda, ok tuşlarını ekleme modunda tekrar etkinleştirdim, ancak neredeyse hiç kullanmadım. Çoğu zaman, dolaşmanın daha iyi yolları vardır.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

Ve özellikle

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
Ok tuşlarını devre dışı bırakma fikrini seviyorum, bu, kendinizi onları kullanmayı bırakmaya zorlamanın güzel bir yolu.
Idan K

1
Benim için çok işe yaradı, ancak ilk birkaç gün son derece sinir bozucuydu. Buna alıştıktan ve ekleme modunda ÇOK fazla hareket etme alışkanlığını bıraktıktan sonra, imap'leri yeniden etkinleştirmenizi öneririm.
Sarah

Bu ekran kayıtları harikaydı. Gösterdiğiniz için teşekkürler.
Mert Nuhoğlu

2
Ok tuşlarını devre dışı bırakmak HARİKA bir fikir, şimdi yapıyorum.
gorsky

Ok tuşlarını devre dışı bırakmak, ok tuşlarının hjkl'den daha yoldan çıktığı varsayımına dayanır. Daha iyi bir klavye elde etmek daha iyidir. Kinesis Advantage kullanıyorum. Standart bir klavye kullanıyor olsam bile, hjkl hala dvorak kullandığım için bir anlam ifade etmiyor. Demek istediğim şudur: mesele "ok tuşlarını kullanma" değil, mesele "En verimli araçları kullanın ve bir öğrenme eğrisi nedeniyle verimlilik kazançlarından kaçınmayın."
Sınırlı Kefaret

23
  1. yazın vimtutorkomut satırında
  2. vim'e gidin, şunu yazın: yardım veya <F1>
  3. posta listesine abone ol
  4. resmi vim belgeleri

1
Dikkate almadığım tek şey, posta listesine katılmaktı: şimdi bitti :)
James

1
Yardım almak ve başkalarının sorunlarını çözerek vim becerilerinizi geliştirmek için iyi bir yerdir.
ghostdog74

1
Vimtutor için +1 - kas hafızanıza vim yolunu açmak için mükemmel bir yol.
Hamish Downer

16

İki ipucu daha:

  • Her şeyi (e-posta, web formları, kod, ...) düzenlemek için Vim'i kullanın . Bir şey yavaş hissettiğinde , muhtemelen bunu yapmanın daha hızlı bir yolu vardır. :helpgrepsenin arkadaşın.

  • Http://vimgolf.com/ adresine gidin ve rekabet edin. Bu şekilde birçok ipucu ve püf noktası öğrendim. [ Sorumluluk Reddi : VimGolf'ta yarışırken "kaybolan" uzun süreler için hiçbir sorumluluk kabul edilmez ].


2
Neat, vimgolf'u bilmiyordum!
James

1
@Autopulated: Sorumluluk reddi eklediniz.
Johnsyweb

2
@Johnsyweb: Gerçekten her şey için vim'i kullanabilmeyi istiyorum - ama nasıl? Her web formu içinde uygun bir vim klonu elde etmek ideal olacaktır - çünkü bulduğum tüm tarayıcı eklentileri genellikle yalnızca rastgele bir vim özellikleri alt kümesi uygular ve tarayıcının hala ihtiyaç duyduğu gerçeğine uyum sağlamak için tuş bağlantılarını yeniden eşleştirir. belirli anahtar eşlemelere erişim.
Conrad.Dean


10

Vim'i (ve bir sürü başka şeyi) bu şekilde öğrendim. Oldukça kolay.

Yardım belgelerine göz atın ve her zaman yaptığınız bir şey için bir komut bulun. Örneğin bütün bir kelimeyi silin. Bunu hatırlamak için bir noktaya getirin.

Şimdi, bir dahaki sefere kendinizi bir kelimeyi silmek, durdurmak, geri koymak ve yeni komutu kullanmak için "xxxxx" e bastığınızda bulduğunuzda. Gerekirse bak. Yani "xxxxxx" yerine geri dönüp "dw" ye basarsınız.

Bunu defalarca yapın, ilk başta yavaş olacak ama sonunda yapışacaktır.

Bu komuta sahip olduğunuzda yukarıdan başlayın. Her zaman yaptığınız bir eylem için başka bir komut bulun ...

Bu şekilde yeni komutları ve teknikleri ne kadar hızlı edinebildiğinize şaşıracaksınız.


7

Ok tuşlarını önerildiği gibi yeniden eşlemek / devre dışı bırakmak, kendinizi bunları kullanmamaya zorlamanın harika bir yoludur.

Dikkate alınması gereken başka bir şey: Klavyenizde Esc tuşuna basmak hiç rahatsızlık veriyorsa, işletim sisteminizde Caps Lock'u Esc olarak yeniden eşleştirmek isteyebilirsiniz. Esc, KB'mde garip bir erişim olduğundan ve bu beni Ekle modunda tutan başka bir engel olduğundan (çıkması zor olduğu için) bu benim için çok yararlı bir adımdı. Caps Lock'ta Esc'ye sahip olmak onu küçük bir erişim sağlar ve Ekleme moduna girip çıkmak çok hızlıdır.

Vim'de ileri düzey şeyler öğrenmek için en iyi kaynak: yardımdır, ancak temel bilgileri almak için yapmanız gereken tek şey; kas hafızası her şeyden çok. Aramayı bildiğini söylüyorsun. Bilinçli olarak bir gezinme aracı olarak kullanın. Aramalar [/,?] Ve satır içi karakter tabanlı aramalar [f, F, t, T] önemli Vim nav araçlarından bazılarıdır. Sadece onları kullanın; Devre dışı bırakılmış imleç tuşları ile birlikte, kısa sürede tek başına kas hafızasında gezinebilirsiniz.

Metin Nesneleri. Düzenleyicinin en iyi özelliklerinden biri. Bu, hemen bilinçli olarak pratik yapmak için diğer şeydir. 'Yiw', 'dit' vb. Şeyler çok güçlü ve hızlıdır; bunları tek başına öğrenmek ve kullanmak sizi bir Vim kullanıcısı gibi hissettirecektir.

Metin nesnelerine ve temel gezinmeye sahip olduktan sonra, okuma ve öğrenmeye geçme zamanı: düzenli olarak yardım edin ve harika eklentiler için web'i araştırın. Cidden, Vim'i yıllarca kullanabilir ve "ah ha!" kazara hiç bilmediğin yardımda belirsiz bir haberde tökezlediğin an.


Caps Lock'a yeniden eşlemek yerine Ctrl-C'yi öneririm. Yazması kolaydır ve linux kullanıcıları için oldukça aşinadır.
BandGap

6

Şu konu başlığına bakın: Vim ile en üretken kısayolunuz nedir?

Özellikle ilk cevap.


3
"İlk" cevabın yazarı olarak, dürüst olmak gerekirse, genel olarak editöre hakimiyetinizi geliştirmek için mutlaka en iyi kılavuz olmadığını söylemeliyim. Metni, ekranınızı / terminalinizi ve editörün kendi ortamını işlemek istediğiniz yolları ifade etmek için bir dil olarak düşündüğünüzde vi ile neler yapılabileceği konusunda pek çok zemini kapsar. Ancak, oradaki birçok şey oldukça gelişmiştir.
Jim Dennis

1
Bu cevabı okumaktan o kadar çok şey öğrenmedim ki, belgeleri okuyarak öğrenemeyeceğimi hiç düşünmüyorum!
James


3

Daha fazlasını öğrenmeye nasıl başlamalıyım?

Vim kılavuzunu tamamen okuyun (yazın :h; buradan göz atabilirsiniz). Tüm hareketleri ve komutları bu şekilde öğrenirsiniz. Temel bilgileri zaten biliyorsanız ve geliştirmek istiyorsanız bu çok yararlıdır.

İnsanlar hangi kaynakları tavsiye eder?

vim.org, en popüler vim betiklerine bakın . İlgi çekici bir şey bulursanız kaynaklarını kontrol edin. Veya sadece kurun ve keyfini çıkarın. Bu site, farklı dillerde kaynak koduna göz atmaya yardımcı olan çok sayıda komut dosyası bağlantısı içerir; ve onları orada bulmak nispeten kolaydır.

StackOverflow.com da yardımcı olabilir .


3

Bu oyunu yeğenimin öğrenmesine yardımcı olmak için yaptım, ancak yalnızca Firefox ve Chrome'da çalışıyor>. < http://kikuchiyo.org

Şimdilik, sadece hareket ve ekleme moduna girme ile ilgileniyor. Beta sürümü, ışın kılıcı, sola 'i' ve sağa 'a' ile düşmanlara saldırmanıza izin verir: P

Vim öğrenmeye devam edin, çabaya değer!

:)


Şimdi bu gerçekten iyi bir fikir!
James

Güncelleme: site şu anda kikuchiyos-vim-game.herokuapp.com adresindedir .
kikuchiyo


2

Hala dolaşmak için ok tuşlarını kullanıyorum (!).

Bununla ilgili bir sorun görmüyorum.

Açıkçası, vim ve ok tuşları bulunmayan bir klavye kullanmanız gerekme olasılığınız nedir?

Bilirsiniz, çoğu insan vim'i işini yaptığı için kullanır (çünkü iş onlar için bir işi yaptığında bir seviyeye kadar ustalaşmışlardır), elitist oldukları için değil (ok tuşlarını kullanmamak gibi).

Vim bilginizi geliştirmek için birkaç tavsiye:

  • vim yardımını rastgele bir yerde düzenli olarak açın ve rastgele farklı bir özellik hakkında okuyun. Birkaç dakikanızı alacak. Önümüzdeki X yıl boyunca bu özelliği kullanmamanız mümkündür. Ancak şanslıysanız, belirli bir görevi başarmak için bu özellik hakkındaki bilgilerinizi uygulayabileceğinizi göreceksiniz. Hafızanızı yenilemek için yardımı tekrar açacaksınız. Bu özelliği pratikte birkaç kez kullandıktan sonra, yapışacaktır. Bu noktada vim bilginiz gelişecektir.
  • kullanım: helpgrep ile rastgele dokümantasyon yerlerine girebilirsiniz. Bir şey yapmanız gerekiyorsa ve bunu açıklayan yeri belgelerde bulursanız, orada durmayın. Belge pasajını bir kez daha okuyun. Anahtar kelimeleri bulun. Her anahtar sözcük için, vim belgelerinin diğer bölümleriyle mantıksal bağlantıları keşfetmek için: helpgrep anahtar sözcüğünü kullanın.

Sanırım sadece belgeleri okumakla ilgili sorunum, bir şeyleri gerçekten yapmadan çok etkili bir şekilde öğrenemediğimi fark etmem .
James

1
İmlecinizi kısa mesafelerde hareket ettirmek için imleç tuşlarını kullanmak, [h], [j], [k], [l] tuşlarını kullanmak kadar verimli olabilir ... eğer parmaklarınız başka bir nedenle onlara yakınsa. Herhangi bir doğrusal imleç hareketini kullanmak, birkaç sütun veya hareket çizgisinden daha fazlası için korkunçtur. Genellikle en iyisi, aradığınız şeyi düşünmek ve bunu doğrudan vi'de / veya? komutlar ve düzenli ifadeler. Foo yakınında son bir metin var mı? G? Foo [Enter] (altı tuş vuruşu). İlk satırda "bar ... bir şey .. vurmak mı? 1G / bar. * Bang [Enter] (yaklaşık bir düzine tuş vuruşu) ... vb.
Jim Dennis,

Ok tuşları muhtemelen fareye ulaşmaktan daha verimli olsa da, bir dizi karakter yazdıktan sonra ellerinizi yeniden gruplandırmak için ana satır tuşlarını kullanarak yazarsanız, temel hareket tuşlarından birini girmek için herhangi bir hareket gerekmez. 'j', 'k', 'l' ve 'h' tuşunu almak için sola doğru hafif bir 'seğirme'. Bir şeyleri Vim yöntemiyle yaparsanız, elleriniz her zaman ana satır tuşlarına ok tuşlarından daha yakın olmalıdır. Pratik yapmaya devam edin ve alacaksınız. :)
kikuchiyo


2

Ok tuşlarını kullanmayı bıraktığım yol onları devre dışı bırakmıyordu (ben hala Ekle modunda kullanıyorum) ama eğer bunu düşünürseniz, sağa gitmek istiyorsanız, ltuş olan serçe parmağınızı kullanın , sola gidin İşaret parmağım htuşu, & parmağınızı yukarı kaldırın ("zil sesi") kanahtar ve anahtarı "kaldırın" j.

Elinizdeki dört haneden ilki (başparmağı unutun) Endeks bir en soldadır ve Pinky en sağdadır. Zil parmağınızla telefon görüşmesinde olduğu gibi "çal" ifadesini kullanın ve orta parmağınızın aşağıdan başka gidecek yeri yoktur.

Ayrıca, anahtarların isimlerini (h, j, k, l) unutmamın da çok faydası oldu. Onları bulduğum şekilde hatırlamak için iyi bir anımsatıcı yok ve bu anahtarları kullanan çok fazla eşleme de yok.





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.