Eu gostaria de adicionar alguns extras que às vezes uso multiple-cursors
.
Eu achei o seguinte útil:
iy-go-to-char
Às vezes, você precisa mudar para o próximo #
ou o próximo ,
ou algum delimitador específico. Isso é especialmente útil quando você precisa mover diferentes números de palavras para cada cursor. Ele fornece as funções iy-go-to-char
e iy-go-to-char-backward
, as quais você pode vincular e usar de maneira adequada.
região de expansão
Isso é realmente útil por uma razão semelhante a iy
- quando você tem linhas ligeiramente diferentes sob cada cursor e talvez queira selecionar a sequência de caracteres citada sob o ponto ou similar.
coisas personalizadas
Essas são coisas que acabam de aparecer na minha configuração, mas acho útil. Provavelmente não foi escrito por mim.
Solicitação de entrada
Eu recebi este da Magnars em resposta a uma solicitação para colocar uma string diferente sob cada cursor. O código é simples, mas vinculá-lo a algo e usá-lo em vários cursores é uma maneira prática de inserir itens ligeiramente diferentes em cada local.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Número de incremento no ponto
Isso veio do SO ou do emacswiki. Não tenho certeza qual. É bastante útil por si só e também quando usado em combinação commc/insert-numbers
(defun my-increment-number-decimal (&optional arg)
"Increment the number forward from point by 'arg'."
(interactive "p*")
(save-excursion
(save-match-data
(let (inc-by field-width answer)
(setq inc-by (if arg arg 1))
(skip-chars-backward "0123456789")
(when (re-search-forward "[0-9]+" nil t)
(setq field-width (- (match-end 0) (match-beginning 0)))
(setq answer (+ (string-to-number (match-string 0) 10) inc-by))
(when (< answer 0)
(setq answer (+ (expt 10 field-width) answer)))
(replace-match (format (concat "%0" (int-to-string field-width) "d")
answer)))))))
eval-and-replace
Isso é super poderoso e permite alguns bits 'n' pedaços realmente úteis. Ele avalia o sexp que está por trás do cursor e insere o resultado da avaliação.
Combine-o com, multiple-cursors-numbers
por exemplo, para inserir potências de dois ou uma série que 0 1 2 0 1 2 0 1 2
atravesse cada linha ou algo assim. (Eu fiz as duas coisas de maneira útil). Ou use-a s.el
para escrever essas configurações tediosas de java com itens padrão. Você escreve cada um CONFIG_VALUE_VARIABLE
e depois transforma isso em CONFIG_VALUE_VARIABLE = "configValueVariable"
execução s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
rapidamente, apenas lendo o arquivo README. Minha recomendação é apenas aprendermc/mark-next-like-this
. Experimente e familiarize-se com o que faz. A partir daí, consulte o README sempre que houver uma pergunta que comece com "Gostaria de saber se vários cursores podem fazer ..." Tudo isso dito, acho que é uma introdução mais básica do que o Emacs Rocks! o vídeo seria útil para iniciantes.