Jak przesunąć zaznaczony obszar tekstu w Emacsie o określoną liczbę spacji?


Odpowiedzi:


40

Użyj polecenia indent-rigidly, które jest C-x TABdomyślnie powiązane .

Możesz określić liczbę spacji do wcięcia za pomocą argumentu przedrostka , takiego jak C-5 C-x TAB.

Możesz też wywołać polecenie, a następnie użyć strzałek w lewo / w prawo, aby interaktywnie dostosować poziom wcięcia.


jak dodać argument przedrostka?
Vass

1
Spróbuj na przykład C-5 C-x TABwprowadzić wcięcie w bieżącym regionie 5 spacji.
glucas

świetnie, ale dlaczego pierwsza linia również się nie porusza? Muszę chwycić ostatnią część linii powyżej zaznaczenia, aby utworzyć zestaw linii, które chcę przenieść.
Vass

1
Nie powinieneś wybierać niczego z poprzedniego wiersza, ale chcesz wybrać od początku pierwszego wiersza, który chcesz wciąć. Na przykład, C-aaby przejść na początek linii, C-SPCrozpocząć zaznaczanie regionu, C-n C-nprzejść w dół o kilka linii, C-5 C-x TABaby wciąć te dwie linie.
glucas

1
„za pomocą strzałek w lewo / w prawo interaktywnie dostosuj poziom wcięcia” Naprawdę? Świetny! Nie wiedziałem o tym i czasami musiałem zgadywać, ile miejsca muszę dodać lub usunąć. Mam nadzieję, że to może pomóc.
imz - Ivan Zakharyaschev

9

Jeśli używasz python-mode.el C-c >lub C-c <do przesuwania bloków w lewo lub w prawo


dlaczego pierwsza linia zaznaczenia pozostaje niewzruszona, jeśli nie wybiorę ostatniej części linii powyżej?
Vass

Nie mogę odtworzyć tego zachowania. wszystkie linie zaznaczeń są przenoszone. Emacs 24.4
Lompik

komentarz glucas mówi, że tak się stanie, jeśli nie wybierzesz od początku linii
Vass

6

Za pomocą string-rectanglepolecenia ( C-x r t) można wstawić dowolny dowolny tekst (łącznie ze spacjami) w wybranym regionie.

Powiedzmy, że masz ten blok tekstu i chcesz wstawić 5 spacji przed wszystkimi wierszami.

abc
  def
    ghi

Najpierw wybierz region „0 kolumn”, jak pokazano poniżej (punkt znajduje się na znaku „a”, a znak znajduje się w tej samej kolumnie w wierszu zawierającym „ghi”:

▮bc
  def
▯   ghi

Teraz za pomocą string-rectanglewstaw tekst, który chcesz wstawić w wybranym regionie. W tym przykładzie wstawimy 5 spacji we wszystkich wierszach łącznie z punktem i znacznikiem.

C-x r t M-5 SPC RET

To da tekst z wcięciem poniżej siły.

     abc
       def
         ghi

4

Jest C-x TAB(związany indent-rigidly). Podaj mu prefiks, aby wskazać, o ile spacji chcesz wciąć, wartość ujemna usuwa tyle spacji.


0

Przekonałem się, że wciskając Alt-4, a następnie SPC, uzyskuję pożądany rezultat. Nie jestem pewien, czy jest to najlepszy sposób, ale działa również.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.