IDE'de standart olmayan VIM’in en kullanışlı özellikleri [kapalı]


30

IDE yerine VIM kullanmaya başlayıp başlamam gerektiğini düşünüyorum. Bir IDE'de standart olmayan VIM'in en kullanışlı özellikleri nelerdir?


3
Hangi IDE kullanıyorsunuz? Birçok IDE'de VIM eklentileri bulunur, böylece VIM kullanıyormuş gibi düzenleyebilirsiniz.
Brian R. Bondy

2
@Brian: Kesinlikle tüm gelişmiş özelliklere öykünmediler mi?
Casebash

1
Muhtemelen hepsi değil, kullandıklarım VS için harika. En az 2 tanesi var. viemu.com ve github.com/jaredpar/VsVim
Brian R. Bondy

2
@BriR Bondy: Hiçbiri vim'in tüm özelliklerini kapsamaya bile yaklaşmadı. Yüzeyi tırmaladılar ve daha fazla bir şey yapmıyorlar
Daenyth

2
Ya da gerçekten mantıklı olabilir ve emacsbunun yerine kullanmaya başlayabilirsiniz . ;-)
Orbling

Yanıtlar:


32

Bunun VIM'in onu bu kadar güçlü kılan gelişmiş özelliklerinin mutlaka olduğunu sanmıyorum. Hiçbir şey yapmamak için ellerinizi asla klavyeden çekmemelisiniz. Büyük bir dosyada bir şey bulmak birkaç tuşa basmak kadar basittir. Aynı pencerede birden fazla dosyayı açmak ve kapatmak da inanılmaz derecede hızlı.

İlk başta sezgisel görünmese de, zaman ayırmaya değer. Standart IDE'niz olarak kullanmasanız bile (örneğin, genellikle Visual Studio veya Eclipse kullanıyorum), IDE'nin beklemesinden çok daha hızlı olduğu için dosyaları hızlı bir şekilde açmak ve düzenlemek için VIM'i kullanmaya başlayacaksınız. yük.

VIM'i nasıl iyi kullanacağınızı öğrenmek için zaman ayırın ve asla pişman olmayacaksınız. Ben dokunma-yazı öğrenme ile karşılaştırılabilir olduğunu söyleyebilirim.


3
Bu cevap muhtemelen Vim için en kullanışlı özellik, aynı zamanda tek cevap. Vim için programlanan her şey, IDE'lere de kolayca uygulanabilir, sonuçta sadece metin işlemeye devam eder ...
Tamara Wijsman 15.09.2010

4
+1 Ben bir emacs adananıyım, aynı argüman geçerlidir. Modern IDE'ler metin editörleri için fazla "grafiksel" .
Orbling

22

Benim için :globalkomut katil bir uygulama. Bir regex ile eşleşen (veya eşleşmeyen) herhangi bir satırda rasgele vim komutları çalıştıracaktır.

İşte bazı örnekler:

Varsayılan davranış, eşleşen her satırı listelemektir.

:g/TODO:/

"TODO:" metnini içeren her satırı listeler.

'Mickey' kelimesini, 'Fare' kelimesini içeren herhangi bir satırda 'Minnie' olarak değiştirin

:g/Mouse/ s/Mickey/Minnie/

Komutların kendi aralıkları olabilir, bu "TODO:" ile her satırdan bir sonraki boş satıra silecektir:

: g / TODO: /., / ^ $ / d

Kullan: g! regex ile eşleşmeyen her satırda yürütmek, örneğin "emacs" kelimesini "emmek" kelimesini içeren satırlar dışında "vim" ile değiştirmek için:

:g!/sucks/ s/emacs/vim/

Global komuta ile harika hileler! Onları böyle kullanmayı hiç düşünmemiştim.
Xavier T.

Eclipse, tek tek dosyalar, projeler veya aynı çalışma alanındaki projeler arasında dosyaların düzenli olarak aranmasını destekler. Regex değiştirme de bir ölçüde desteklenir, ancak vim'in çok daha güçlü bir regex özelliğine sahip olduğuna inanıyorum.
Thomas Owens

16

Bir dizi eşleştirilmiş sembol arasındaki her şeyi silme yeteneğini inanılmaz derecede faydalı buluyorum. Örneğin, oldukça sık, kendimi kodda bir dize değiştirmek isteyen bulacağım. Böylece, di"imleç blok içinde iken, dize siler, ""sağlam tutarken ve imleci iki alıntı karakteri arasına yerleştirir. da"aynı şeyi yapar, ancak alıntı karakterlerini de siler.


12
Daha da iyisi, ci"hemen yazmaya başlayabilmeniz için imleci ekleme moduna geçirir.
Konrad Rudolph

9

'Ekleme modu anahtar kelime tamamlama'. Ctrl-P ve Ctrl-N, yazdığınız değişken adını denemek ve tamamlamak için metni aramak için ekleme modundadır. Bunu başka bir IDE'de hiç görmedim ve gerçekten çok özlüyorum. IDE’lerde kod tamamlama aynı değil.


2
Ayrıca , omni-complete kullanarak, isterseniz doğru kod tamamlamaya da sahipsiniz. ^X^Oomni, etkinleştirilmişse ekleme modunda tamamlanır. Ancak haklısınız, kendimi anahtar kelime tamamlama özelliğini çok yönlü tamamlamadan çok daha fazla kullanırken buluyorum.
Chinmay Kanchi

@Chinmay: Geriye doğru "uygun" anlamına geldiğini düşünüyorum. Doğru kod tamamlama, kod yerine metin yazıyor olsanız bile, yerellik ilkesini kullanarak her şeyi tamamlar.
ninjalj

SlickEdit benzer bir özelliğe sahiptir; ve çok IDE-gibi
user281377

8
Tamamen katılmıyorum. Modern IDE'lerin (Visual Studio, Eclipse,…) rakipleri (ve gerçekte aşan!) Ctrl-N'yi kolayca aşan bir tür kod tamamlaması var . Bunu IDE'lerde görmediyseniz, güncel sürümlere tekrar bakın. Ve Omni-Complete ne yazık ki düzgün çalışmıyor.
Konrad Rudolph

8

İnanılmaz derecede faydalı bulduğum bir diğer özellik de girintiyi değiştirme yeteneği. :15,30>>tüm satırları 15-30 (dahil) 'den iki kez :15,30<<girintilerken, aynı satırları iki kez çıkarır.


Bu özelliği sevmeme rağmen, hemen hemen her IDE girintiyi engelledi (ve çöktü).
Sean McMillan

Ben bulmak =gibi olmasa daha kullanışlı, daha olmak <<ve >>.
greyfade

6

dd komutu (geçerli satırı sil). Bunu çok kullanırım.

Ayrıca, 3dd gibi bir şey yazabilmek ve sonraki 3 satırı silebilmek harika. Bunu başka bir editörde hiç görmedim = D


Netbeans neredeyse buna sahip, ^ X seçim yapmadan geçerli satırı keser .
Alan Pearce

@Alan: Hayır, NetBeans jVi var :)
dr Hannibal Lecter

^ K satırı siler ve ^ u3 ^ k emacs içindeki 3 satırı siler. shift-delete, görsel stüdyoda aynı şeyi yapar.
Raoul

Alan: gg da keser o p sonradan ile sokulabilecek biçimde anlamda geçerli satırı
user281377

3
@ Rio, biz her vim komutunu çoğaltmak için bir emacs n 3 tuşlu kombinasyon dizisi olduğunu biliyoruz - yine de, 3dd şiir.
cbrandolino

6

cKomut. Örneğin, ci"tırnak içinde değiştirmek için. cwsözcüğü değiştirmek için. Yanında birçok kullanışlı numara var.



3

Esc ! }gibi bir komut satırı filtreye geçerli paragraf kapalı sokacaklar fmtya wcya whicheditöre dönüş sonuçları ve.


3

Komut satırına hızlı erişim. CTRL + Z veya: wqa, elim klavyeden çıkmadan bana 1 sn'den daha kısa bir komut satırı alır.


1
+1 Bu son küçük parça hemen hemen tüm faydalar için çok önemli bir bölüm: elim klavyeden çıkmadan
Orbling

... Veya :!/bin/bash. Çok :!sık kullanıyorum.
greyfade

Genelde kullanırım:sh
David Brown

3

Ben kullanabileceği hjklklavyenin HomeRow ayrılmak zorunda kalmadan imleci hareket ettirmek için. Kaydırmaları değiştirmek için Vim hareket tuşlarını kullanmak üzere ayarlanmış çoğu tuş takımını (PDF okuyucular gibi) sahibim.


1

Sorunun belirsizliği ve bir kısmı da IDE’nin farklı olduğu gerçeğinden ötürü, cevaplaması oldukça zordur ve birçoğu, diğerlerinin yapmadığı (ve bunlardan yalnızca birkaçı) olmayan özellikler sunar.

Bununla birlikte, Vim'i diğer editörlerden ayırdığına inandığım şey (evet, bu konuda Emacs bile) gerçekten harika bir editör. . Zamanın içindeyim, birçok editör kullandım ve dürüstçe söyleyebilirim ki, Vim'in yaptığı gibi metin işlemek için böylesine tam bir özellik setinin çok azının geldiğini söyleyebilirim.

Örneğin, metin düzenleme stilim çok uzun zaman önce hızlı kısayollar tanımladığım (birkaç satırdan satır / seçim) çoğaltma ve (birkaç satırdan satır / seçim) işlemlerini içerir. Çoğu IDE'deki bu özellikleri özlüyorum (ReSharper for VS'de benzer şeyler olduğunu duydum).


1

Tutulma için bir vi eklentisi olduğunu biliyor muydun ? O 15 euro (20ish ABD $) maliyeti ama bu yüzden değer. Artık ddbir belgenin ortasında değil ve tüm küçük faydalı şeyleri özlüyorum.

Belki biraz konu dışı ama işaret değeceğini düşündüm.


0

Programladığınız dile bağlı olarak, ide ile yapıştırın ya da bulabileceğiniz en refaktörleri sunan ide'yi alın, c #, java için intellij veya görsel stüdyo için görsel asistanlık yapıyorsanız görsel stüdyoya yeniden uyum sağlayın, tutuculukları tutulma ya da netbealarda maksimuma çıkar.

Metni manipüle etmek için kodu manipüle etmek için hareket etmeliyiz, yeniden düzenleme araçları size bu yeteneği verir. Vim size tüm özellikleri iyi veriyorsa, biri için artık bir metin editörü ile uğraşmak istemiyorum.


3
Bu hemen hemen saçmalık. Evet, yeniden düzenleme önemli bir araçtır, ancak kodun kendisi yazmaz. İyi bir metin editörü , bir programcının üretkenliğine, iyi bir yeniden düzenleme aracından çok daha fazla katkıda bulunur .
Chinmay Kanchi 14:11

-1

Tablo Sütunu Seç

Bu popüler IDE'lerde görünmüyor ve eğer öyleyse onu iyi saklıyorlar. Bu, CSV veri dosyasındaki bir sütuna karşı regex'i test etmek için gerçekten kullanışlıdır.


-3

Çoğu IDE ekranı bölmenize izin vermez. VIM'deki bu özelliği seviyorum.


5
Çoğu IDE değil mi? Sanırım çoğu, en azından kullandıklarımı yapıyor.
Anto

Bazı örnekler verebilir misiniz?
projecktzero

1
Çoğu IDE'nin tutma ekranı Vim / Emacs'tan farklı olarak bölünüyor. Genellikle sekmelerle yaparlar. Bunlar klavyeyle işlem yapmak zordur / imkansızdır (Emacs'ta 50 dosyanın açık tutulması ile Eclipse'de 50 dosyanın açık olması ve Emacs'ın kazandığını hızlıca göreceksiniz).
jsternberg

Ekranı olan çoğu IDE, a-la'da gezinmek / ayarlamak için kolay yöntemler sağlamıyor<C-w>
Wayne Werner
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.