Agora não tenho o Emacs para tentar, mas imagino skip-syntax-forwardque faria isso.
precisa saber é o seguinte
11
Tentei (skip-syntax-forward "^\"")que pode saltar para o próximo símbolo de aspas duplas, mas não pular símbolo escapou, por exemplo, "string \" não pode ser ignorada?".
AhLeung
Respostas:
9
M-C-f(ou M-C-right) obrigado a forward-sexpfazer isso.
Eu sugiro que você tente todos os comandos de movimento conhecidos com o prefixo em M-C-vez de C-.
Você também deve mencionar backward-sexpobrigado M-C-b.
Timm
@ Timm Eu pensei que seria bastante óbvio que se tente os comandos de movimento com prefixo, em M-Cvez de C-se souber M-C-f. Ok - vou mencionar na resposta.
Tobias
11
Parece que forward-sexpe backward-sexpparar nos espaços em branco dentro de uma seqüência de caracteres citada?
precisa saber é o seguinte
1
Sempre tenho problemas para lembrar as ligações para forward-sexpe backward-sexp, e queria algo que funcionasse mais como %no modo de comando do Vim. Em algum momento, adicionei isso à minha configuração (a docstring diz parens, mas funciona para qualquer tipo de colchete ou citação), e agora estou satisfeito:
;;; PAREN-BOUNCE
;;;; originally ganked from <http://elfs.livejournal.com/1216037.html>
(defun genehack/paren-bounce ()
"Bounce from one paren to the matching paren."
(interactive)
(let ((prev-char (char-to-string (preceding-char)))
(next-char (char-to-string (following-char))))
(cond ((string-match "[[{(<\"']" next-char) (forward-sexp 1))
((string-match "[\]})>\"']" prev-char) (backward-sexp 1))
(t (error "%s" "Not an expression boundary.")))))
;;;; bindings
(global-set-key (kbd "C-%") 'genehack/paren-bounce)
(global-set-key (kbd "C-5") 'genehack/paren-bounce)
Forneça uma resposta completa em sua postagem. Respostas somente para links são aceitáveis para comentários, mas não para respostas.
Dan
sp-beginning-of-sexpe sp-end-of-sexpestão muito perto do que eu quero. Espero que eles possam ser combinados em uma função (por exemplo, sp-matching-sexp) para que eu só precise lembrar de uma combinação de teclas. Talvez eu tente escrever uma função elisp. Deixe-me saber se alguém fez isso antes. Obrigado.
skip-syntax-forward
que faria isso.(skip-syntax-forward "^\"")
que pode saltar para o próximo símbolo de aspas duplas, mas não pular símbolo escapou, por exemplo, "string \" não pode ser ignorada?".Respostas:
M-C-f(ou M-C-right) obrigado a
forward-sexp
fazer isso.Eu sugiro que você tente todos os comandos de movimento conhecidos com o prefixo em
M-C-
vez deC-
.backward-sexp
backward-up-list
forward-list
fonte
backward-sexp
obrigadoM-C-b
.M-C
vez deC-
se souberM-C-f
. Ok - vou mencionar na resposta.forward-sexp
ebackward-sexp
parar nos espaços em branco dentro de uma seqüência de caracteres citada?Sempre tenho problemas para lembrar as ligações para
forward-sexp
ebackward-sexp
, e queria algo que funcionasse mais como%
no modo de comando do Vim. Em algum momento, adicionei isso à minha configuração (a docstring diz parens, mas funciona para qualquer tipo de colchete ou citação), e agora estou satisfeito:fonte
Sugiro usar o pacote smartparens para todos esses fins. Aqui está uma breve introdução: https://ebzzry.io/en/emacs-pairs/ .
fonte
sp-beginning-of-sexp
esp-end-of-sexp
estão muito perto do que eu quero. Espero que eles possam ser combinados em uma função (por exemplo,sp-matching-sexp
) para que eu só precise lembrar de uma combinação de teclas. Talvez eu tente escrever uma função elisp. Deixe-me saber se alguém fez isso antes. Obrigado.