Domanda

Surround.vim è un ingegnoso vim estensione che permette di surround a blocchi di testo con, tra parentesi, bretelle, e praticamente qualsiasi arbitraria carattere "surround". Supporta il paragrafo e la parola surround, ma io spesso uso in modalità visiva. Sto giocando intorno con Emacs e si chiede se c'è qualcosa di simile; qualcosa che mi permetta di evidenziare una regione e poi hanno la regione segnata (o rettangolo) chiusa con bretelle, staffe o tag.

È stato utile?

Soluzione

wrap-regione è quello che ti serve.

smartparens è un'altra opzione eccellente se necessità di avvolgere qualcosa con delimitatori, tag, ecc.

Altri suggerimenti

male surround . Emula il comportamento vim ma purtroppo potrebbe non essere ciò che gli utenti la maggior parte emacs vogliono in quanto richiede la male modalità vim . Tuttavia, si può o non può essere giusto per voi da quando si fa riferimento surround.vim in primo luogo.

male surround sembra supportare la maggior parte delle funzionalità di Surround.vim, tra cui la modifica dintorni.

Non credo che ci sia qualcosa di costruito in per i tag, ma per parens si può fare M - ( Per le staffe / ganci / citazioni si potrebbe fare:.

(global-set-key (kbd "M-[") 'insert-pair)
(global-set-key (kbd "M-{") 'insert-pair)
(global-set-key (kbd "M-\"") 'insert-pair)

Si noti che se non si dispone di una regione evidenziata, sarà sufficiente inserire la coppia di whatevers e posizionare il cursore tra di loro. Utile anche per l'eliminazione di whatevers Matching è

(global-set-key (kbd "M-)") 'delete-pair)

Se si desidera inserire coppie di tag, che sia una semplice elisp:

(defun my-insert-tags (tag)
  (interactive "sTag: ")
  (if (region-active-p)
      (let ((beg (region-beginning)))
        (save-excursion
          (goto-char (region-end))
          (insert "</" tag ">")
          (goto-char beg)
          (insert "<" tag ">")))
    (insert "<" tag ">")
    (save-excursion
      (insert "</" tag ">"))))

Non conosco alcun modo di fare che in Emacs, nemmeno con un modulo.

Il mio Elisp è un po 'arrugginito, acquistare qui è una semplice funzione che racchiudono l'area corrente (testo marcato) o una parola con le virgolette ( "):

(defun insert-quotes ()
  "Inserts quotes (\") around the current region or work."
  (interactive)
  (let (start end bounds)
    (if (and transient-mark-mode mark-active)
        (setq start (region-beginning) 
              end (region-end))
      (progn
        (setq bounds (bounds-of-thing-at-point 'symbol))
        (setq start (car bounds) 
              end (cdr bounds))))
    (goto-char start)
    (insert "\"")
    (goto-char (+ end 1))
    (insert "\"")))

Sì, c'è un clone di surround.vim, a partire dal 1 settimana fa: http: //github.com/timcharper/vimpulse-surround.el

Si richiede vimpulse, che richiede vim. Esso implementa gran parte della funzionalità di surround.vim.

male surround è quello che stai cercando.

Grazie.

Così si vuole selezionare una regione o simili e poi fare una scatola attorno ad esso come un vari modi non per i commenti? Credo emacs-wiki ( http://www.emacswiki.org/ ) ha qualche ascii-line art (e uno strumento figlet pure) che lo farà. Ricerca di scatola, piuttosto, line art ...

############################
#                           #
# I AM REGION, WE ARE  MANY #
#                           #
############################
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top