2014-06-06 18 views
5

w vim, można to zrobić przez vi”vi [vi (...Jak wybrać tekst między cudzysłowami, nawiasami ... w Emacs?

Na przykład, jeśli masz linię:

x = "difference between vim and emacs" 

a kursor znajduje się gdzieś pomiędzy tymi cytaty i trafisz vi”, ciąg będzie wizualnie wybrany.

+0

Ściśle związane: [Jak zaznaczyć tekst między nawiasami w Emacs?] (Http://stackoverflow.com/q/5194417/1199226) – itsjeyd

Odpowiedz

3

późno do partii, ale można też użyć Evil mode, który wykonuje pracę Bang-up emulacji Vima, w tym poleceń ruchu wspomniałeś.

+0

Tak, właśnie to wykorzystałem! :) – qed

4

Od Emacs Documentation

Prawie wszystkie rodzaje wsparcia«(,)»jak p s., a większość z nich obsługuje także nawiasy kwadratowe "[,]" i nawiasy klamrowe "{,}". Można jednak dokonać każda para znaków nawias-pair, stosując następujące polecenie :

(modify-syntax-entry ?^ "($") 
(modify-syntax-entry ?$ ")^") 

Również spojrzeć na tym stanowisku How to mark the text between the parentheses in Emacs?. kombinacja klawiszy podane na tym stanowisku

Spróbuj sekwencję klawiszy C-M-u C-M-SPC (czyli trzymając Control i Meta klawisze, naciśnij u i Space w sekwencji), który wykonuje polecenia backward-up-sexp i mark-sexp

11

Pakiet expand-region jest wygodny dla tego. Wywołanie er/expand-region z punktem wewnątrz cudzysłowu spowoduje zaznaczenie najbliższego słowa, a ponowne wywołanie zaznaczy wszystkie słowa w cudzysłowach. (Wywołanie go po raz trzeci spowoduje rozwinięcie regionu w celu uwzględnienia cudzysłowu).

Mam powiązanie z C-;.

(global-set-key (kbd "C-;") 'er/expand-region) 

Z tego wiązania, pressng C-; C-; podkreśli tekst między cudzysłowów.

+1

@qed Jeśli wybierasz tekst, ponieważ chcesz na nim operować (skopiuj, zabij, itp.) jest również [change-inner.el] (https://github.com/magnars/change-inner.el), który jest zbudowany na 'expand-region.el' i "daje ci polecenie' ci' vima ". – itsjeyd

1

Na szczycie Toolkit

https://launchpad.net/s-x-emacs-werkstatt/+download

następujące klucze/polecenia dostarczane są:

(global-set-key [(super \))] 'ar-parentized-atpt) 
(global-set-key [(super \])] 'ar-bracketed-atpt) 
(global-set-key [(super \})] 'ar-braced-atpt) 
(global-set-key [(super \")] 'ar-doublequoted-atpt) 
(global-set-key [(super \')] 'ar-singlequoted-atpt) 

tamtędy z kilkoma więcej znaków znanych jako ograniczniki będą stanowić poleceń.

ar-delimited-atpt spowoduje zwrócenie ciągu wokół punktu znalezionego przez najbliższe ograniczniki.

grupa mocniejszych poleceń umożliwia ponowne wykorzystanie klawiszy jak to

(global-set-key [(control c)(\")] 'ar-doublequote-or-copy-atpt) 
(global-set-key [(control c)(\')] 'ar-singlequote-or-copy-atpt) 
(global-set-key [(control c)(<)] 'ar-lesser-angle-or-copy-atpt) 
(global-set-key [(control c)(>)] 'ar-greater-angle-or-copy-atpt) 

tu doctring podanego jako przykład:

ar-doublequote-or-copy-atpt is an interactive Lisp function in 
`thing-at-point-utils.el'. 

It is bound to C-c ". 

(ar-doublequote-or-copy-atpt &optional NO-DELIMITERS) 

If region is highlighted, provide THING at point with doublequote(s), 
    otherwise copy doublequote(ed) at point. 
    With C-u, copy doublequote(ed) without delimiters. 
    With negative argument kill doublequote(ed) at point. 
0

korzystać z bibliotek thingatpt+.el i thing-cmds.el.

Znajdziesz tam takie polecenia, jak thing-region, które wybierają rzecz w punkcie jako region.Od string-contents i list-contents są zdefiniowane jako rzeczy (w thingatpt+.el), to wybrać zawartość ciąg/listy jako regionu:

(thing-region "string-contents") ; Select the contents of the string at point. 
(thing-region "list-contents") ; Select the contents of the list at point. 

Albo Interaktywnie:

M-x thing-region RET string-contents RET 

Inne, podobne komendy obejmują:

  • C-M-U (alias C-M-S-u) - mark-enclosing-list: Wybierz załączając lista. Powtarzaj, aby rozwinąć listę poziomów. Działa z dowolnymi wyrażeniami z wyważonymi nawiasami (np. Wektorami): niezależnie od bieżącej tabeli składni definiuje ona składnię o zrównoważonym separatorze.

  • mark-thing - Wybierz kolejne rzeczy danego rodzaju (powtarzając).

  • next-visible-thing - Przejdź do kolejnej widocznej rzeczy danego rodzaju (powtórzenie).