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.