Me gusta usar el modo de shell de Emacs, pero tiene algunas deficiencias. Una de ellas es que no es lo suficientemente inteligente como para abrir un nuevo búfer cuando un comando de shell intenta invocar un editor. Por ejemplo, con la variable de entorno VISUAL
conjunto de vim
me sale el siguiente de svn propedit
:Abrir un búfer de Emacs cuando un comando intenta abrir un editor en modo de shell
$ svn propedit svn:externals . "svn-prop.tmp" 2L, 149C[1;1H ~ [4;1H~ [5;1H~ [6;1H~ [7;1H~ ...
(que puede ser difícil saber a partir de la representación, pero es un feo desorden horrible.)
Con VISUAL
establecido en "emacs -nw"
, consigo
$ svn propedit svn:externals . emacs: Terminal type "dumb" is not powerful enough to run Emacs. It lacks the ability to position the cursor. If that is not the actual type of terminal you have, use the Bourne shell command `TERM=... export TERM' (C-shell: `setenv TERM ...') to specify the correct type. It may be necessary to do `unset TERMINFO' (C-shell: `unsetenv TERMINFO') as well.svn: system('emacs -nw svn-prop.tmp') returned 256
(funciona con VISUAL
conjunto a solo emacs
, pero sólo desde el interior de una ventana de Emacs X, no dentro de una sesión de terminal.)
¿Hay alguna manera de hacer que el modo de shell haga lo correcto aquí y abrir un nuevo búfer en nombre del proceso de la línea de comando?
$ svn propedit svn: ignorar. Esperando Emacs ... -error Desconocido & _comando: & _ ABSPATH/TO/REPO/svn & -prop.tmp Sin cambios a la propiedad 'svn: ignore' on '.' –
Vaya. Tengo/etc/alternatives apuntando a diferentes versiones para emacs y emacsclient. La actualización de la alternativa para emacsclient solucionó lo anterior. –
'export EDITOR =" emacsclient --alternate-editor = emacs --no-wait +% l% f "' vale la pena mencionar. – jfs