emacs: python kodunun 4 boşluk ile girintisiz / girintisiz bölgeye nasıl girileceği


60

Emacs'de seçilen bir python kodu bölgesi var. 4 satırla her satırdaki girintiyi ve girintiyi almanın en etkili yolları nelerdir?

İdeal olarak, içeriğe duyarlı olmayan bir şey istiyorum (örneğin, girintinin python sözdizimi ile ilgili olmadığı belgelerde geçişler girmeme izin verecek).

Mod çizgim gösterilir (Python). İnternette arama yapmak python-modeyerine çok fazla tartışma konusu buldum python, ancak birkaç gün önce emacs kullanmaya başladım, bu yüzden varsayılanları ve onları anlama şansım olmadı. python-modeEn iyi seçenek olarak değiştiriliyorsa, bunu bir cevap olarak kabul etmekten mutlu olurum.

Ne denedim (kılavuzdan):

  • <TAB> etkisi yok
  • C-M-\ etkisi yok
  • C-x <TAB> (girintili bir şekilde) her satırı bir sütuna göre girinti yapın (ve bölgenin seçimini kaldırın)
  • M-i bir sekmeyi bir sekme ile girintiler (8 boşluk uzunluğunda)
  • C-M-q - "CMq tanımsız"

Bulduğum tek yol regex-değiştirme kullanmak, ancak bu kadar basit bir görev için çok fazla tuşa basma.

Yanıtlar:


69

Değişkenin python-indent4 olduğunu varsayarsak :

M-x python-shift-right (C-c >)
M-x python-shift-left  (C-c <)

5
Yapmam gerekiyordu python-indent-shift-left.
nnyby

17

indent-rigidlyne kadar girileceğini belirten bir önek argümanı alır, bu nedenle C-u 42 C-x TAB42 sütun girintiler, ve varsayılan önek argümanı 4 ise, C-u C-x TAB4 sütun girintiler.

Bölgeyi tekrar seçmek istiyorsanız, daha C-x C-xsonra yapın.


8

Girinti-ritid komutunu sayısal bir önek ile kullanın.

C-u 4 M-x indent-rigidlybölgeyi dört boşluk ile girintiye almak, dört boşluk C-u -4 M-x indent-rigidlyçıkarmak için.


4

Cx Cx kodu işaretler ve ardından Mx sekme modu için girinti

Her satır için sekmeye bastığınızda tasarruf budur.


3

Sütun modunu da kullanabilirsiniz.

Sütun modunda satırları seçin, ardından bir kerede hepsine dört boşluk ekleyin:

  1. Girinmek istediğiniz ilk satırın 1. sütununa atlayın.
  2. C-<space> işaret koymak
  3. noktayı son satırlara doğru aşağı kaydır (birinci sütunda kal)
  4. C-x r tsütun moduna girmek için (veya C-<RET>CUA modunuz varsa)
  5. <space><space><space><space><RET>

Dört alanı silmek için benzer bir manevra yapabilirsiniz - işaretli bölgenize sadece 4 sütun ekleyin (adım 2-3) ve vurun <DEL>


3

Yukarıdaki Chen'in çözümünü güncelleyerek, şu anda (Emacs 24.4.1'de test edildi) komutları yeniden adlandırıldı. Bu nedenle, python-indent değişkenine göre girintilemek istediğinizi varsayarsak, komutlar python-girintili-shift-sola ve python-girintili-shift-sağdır. Yapabilirsin:

  1. bunları yazarak M-x python-indent-shift-rightveyaM-x python-indent-shift-left

  2. varsayılan python modu kısa yollarını kullanın C-c >veC-c <

  3. onları yeniden birleştirin. Örneğin, pencereli bir klavyede kullanıyorum:

    (global-set-key (kbd "s-s") 'python-indent-shift-left) 
    (global-set-key (kbd "s-d") 'python-indent-shift-right)
    


0

Her ikisi de S-<LEFT>veS-<RIGHT>Python büyük modda iyi çalışır . Bu özellikle uygundur Cua Modu nerede C-cve C-xbir bölge seçildiğinde davranış / cut kopyalamak değişiklikleri.

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.