2012-05-09 13 views
5

np. Chcę dodać podwójny cudzysłów na końcu grupy zaznaczonych linii. Lub chcę usunąć dwa znaki z grupy zaznaczonych linii. Czy jest jakieś polecenie? Wiem, że istnieje "M-x r t" do wstawienia prostokąta tekstu, ale działa to tylko wtedy, gdy wszystko jest wyrównane w pionie, co zwykle nie ma miejsca na końcach linii.Jak dodać lub usunąć tekst na końcu wielu linii naraz w Emacs?

Odpowiedz

7

Można

  1. zapisać makro klawiatura z C-X(C-e"C-fC-X), wzgl. C-X(C-ECofnięcieCofnięcie-fC-X). Powołać się makro z C-Xe, e, e, e ...
  2. wykonać wymianę regex z M-C-%. Zastąp symbol $ za pomocą " , aby dodać podwójny cudzysłów, zastępując ..$ niczym, aby usunąć ostatnie dwa znaki .
+1

Lub po nagraniu makro, wykonaj C-u n C-x e gdzie "n" jest liczbą powtórzeń, których może on potrzebować. – SlowLearner

+1

Czy nie brakuje "C-n" w makrach, aby przejść do następnej linii, aby przygotować się do następnego wykonania makra? – deong

+0

@deong: Masz rację, dzięki. Zaktualizowano. – choroba

3

Oto bardziej wizualny sposób, zobacz wyniki w każdym wierszu podczas wpisywania ich w jednym wierszu.

Grab niedawne kopia yasnippet z http://github.com/capitaomorte/yasnippet i dodać do swojej .emacs

(require 'yasnippet) 

(defun yas/add-to-end-of-lines-snippet() 
    (interactive) 
    (when (region-active-p) 
    (let ((snippet (replace-regexp-in-string "$" "$1" (buffer-substring (region-beginning) (region-end))))) 
     (delete-region (region-beginning) (region-end)) 
     (yas/expand-snippet snippet)))) 

teraz wybrać region i wpisać M-x add-to-end-of-lines-snippet.

5

M-xreplace-regexp$" powinny działać, ale nie jestem pewien, czy znak replace-regexp względami.

+3

Zawsze można "zawęzić do regionu" i operować na całym zwężonym buforze bez ryzyka zniszczenia linii poza pierwotnym highlinght ('C-x n n' i' C-x n w' aby przywrócić zwężenie). – Juancho

+0

'replace-regexp' może być również użyte do innego zadania (usunięcie 2 ostatnich znaków). Zastąpić "..$ "bez niczego, aby to osiągnąć. – Juancho

Powiązane problemy