Her satırın ilk birkaç grafiği nasıl silinir?


Yanıtlar:


28

Daha da kolay! Yine, dikdörtgen komutlarını kullanın . Silmek istediğiniz dikdörtgenin bir köşesine gidin C-SPC, işareti ayarlamak için tuşuna basın . Dikdörtgenin diğer köşesine gidin ve C-x r d( delete-rectangle) tuşuna basın . Örneğin, üzerinde işlem yapmak istediğiniz ilk satıra gidin, satırın başına gitmek için C-aveya düğmesine basın, üzerinde işlem homeyapmak istediğiniz son satıra gidin, sağ alt köşeye gidin ve ardından silmek için.C-u number C-fC-x r d

Son satırda istenen karakter sayısından daha az karakter varsa, bunun yerine sol alt ve sağ üst köşeleri kullanmak daha uygun olabilir. Alternatif olarak, önemsiz karakterler ekleyebilirsiniz (bu, hem ilk satır hem de son satır daha kısaysa yararlıdır).

Daha sonra C-x r kkenetlemenizi ( C-x r y) sağlayan dikdörtgeni öldürmek için kullanabilirsiniz (eklemek istediğiniz yerin sol üst köşesine gidin).

Ayrıca C-x r t( string-rectangle) öğesini kullanabilir ve boş bir dize girebilirsiniz.

Dikdörtgen komutları sütun konumlarını temel alır. N sütun (n sekme gibi çok sütunlu karakterlerle fark yaratır) yerine n karakteri silmek istiyorsanız, normal ifade değiştirme kullanabilirsiniz : ^.\{42\}her satırın ilk 42 karakterini silmek için hiçbir şey kullanmayın.


3
tüm dikdörtgen komutlarını hatırlamaya çalışmak yerine, bölgenizi bir dikdörtgene dönüştüren ve her şey işe yarayan C-spc yerine Cx spc'yi de kullanabilirsiniz.
Malabarba

1
@Malabarba Sadece Emacs 24'ten beri. (Bunu Emacs 23 ile bir makineye yazıyorlar. Hala çok
fazlalar


Bu sadece GNU Emacs 23.4.1 benim için çalıştı (x86_64-pc-linux-gnu, GTK + Versiyon 2.24.21) Debian tarafından modifiye yenibahar üzerinde 2013-10-25 arasında
davidrmcharles

4

Başka bir olasılık: Bu gibi görevler için birden çok imleç kullanmayı seviyorum. Mevcut package.elMELPA aracılığıyla, benim emacs'ın vazgeçilmez bir parçası haline geldi. Basitçe seçerdim I said(ve muhtemelen ondan önce satır sonunu dahil eder), kullanır M-x mc/mark-all-like-thisve yola koyulurdum. Daha hassas bir kontrol istiyorsanız, mc/mark-next-like-thisveya tuşlarını kullanabilirsiniz mc/mark-next-lines.

Anahtar bağlarım:

(use-package multiple-cursors
  :bind (("C->"   . mc/mark-next-like-this)
         ("C-M->" . mc/mark-all-like-this-dwim)))

Zorunlu Emacs Kayaları! bölüm: http://emacsrocks.com/e13.html


3

Eğer varsa cua-modeetkin, o zaman:

  • C-a çizginin başına geçmek,
  • C-RET dikdörtgeni başlatmak,
  • Sonra ok tuşları veya herhangi bir emacs move komutu gibi hareket C-f
  • DEL seçimi silmek için

cua-modeEşdeğer olacağını Emacs standart dikdörtgen ile karşılaştırıldığında, çalışma şeklini tercih :

  • C-a çizginin başına geçmek,
  • C-SPC dikdörtgeni başlatmak,
  • Sonra ok tuşları veya herhangi bir emacs move komutu gibi hareket C-f
  • C-x r d seçimi silmek için

cua-modeStandart Emacs dikdörtgen kıyasla üç anahtar presleri kaydeder.


3

Tamlık uğruna: her satırdan ilk 3 karakteri silmek (resmi olarak: noktadan veya bölgeden) boş bir dize ile normal ifade yerine ^...(veya daha genel olarak :) değiştirilerek yapılabilir ^.\{3\}.

Açıklama: regexen içinde, ^araçlar "çizginin başlangıç", .araçlar "herhangi bir karakter" ve \{n\}araçlar " n şeyleri daha önce tekrarları".

Bu, etkileşimli olmanın ek bir avantajına sahiptir (bir kez basmadıkça !, bundan query-regexp-replacesonra başka sorular olmadan her şeyin yerini alır).


1
Neden inişler?
mbork

0

Ve bir olasılık daha:

F3C-aC-3C-dC-nF4

temel olarak "satırın başına git, üç karakteri sil ve sonraki satıra git" diyen bir klavye makrosu kaydeder. Ardından, ara belleğin sonuna kadar tekrar oynatabilir C-uF4veya C-xC-krbölgedeki çizgilere uygulayabilirsiniz. Bunun bir dezavantajı vardır: herhangi bir satır 3'ten az karaktere sahip olduğunda kırılır.


-1

Sadece bir satır ise, bu karakterin silmek istediğiniz nokta ile nokta arasında tekrarlanmadığını varsayarak Mz ile zap-to-char yapabilirsiniz. Bazı durumlarda bu bölge oluşturmaktan daha hızlıdır.

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.