2011-06-24 13 views
6

estoy aprendiendo de vim Actualmente Emacs y estoy tratando de configurar mi archivo de inicialización. Actualmente se parece a esto (que se encuentra en algún lugar de la web):pestañas Emacs se comportan exactamente como

(setq indent-tabs-mode t) 
(setq-default indent-tabs-mode t) 
(global-set-key (kbd "TAB") 'self-insert-command) 
(setq default-tab-width 4) 
(setq tab-width 4) 
(setq c-basic-indent 4) 

Pero no se comporta como estilo de pestañas de Vim.

sólo quiero que se comporte como Vim cuando el uso de pestañas. Eso significa no sustituir pestañas con espacios (creo que Emacs lo hace de forma predeterminada).

Para que todos pueden editar archivos en su tamaño de la pestaña preferido. Generalmente uso 4 para el ancho de la pestaña. Y que cuando presiono Retroceso iré al mismo número hacia atrás, lo que significa que si configuré la tabulación en 4 y presioné Tab, retrocederé 4 caracteres después de presionar Retroceso. También debe usar siempre 4 espacios para tabulación. Porque a veces en emacs no hace eso.

+0

sangría en Emacs es un tema algo complicado, pero creo que vale la pena pasar algún tiempo para entender algunos de los detalles. Consulte http://www.emacswiki.org/emacs/CategoryIndentation para obtener mucha información. – phils

Respuesta

6

manejo pestaña de Vim se puede configurar, por lo que no es una buena descripción de lo que quiere hacer, pero el resto de su descripción tiene suficiente información, en su mayor parte.

La forma más sencilla de hacer frente a las pestañas es no volver a utilizarlos. Así que no te sorprendas si configurar pestañas de la manera que te gusta requiere un poco de trabajo.

Ha configurado la tecla para insertar un carácter de tabulación. Esa no es la costumbre en Emacs: por lo general, la tecla Tab se usa para sangrar la línea actual. Lo que ha hecho es suficiente para el valor predeterminado, pero los modos específicos del idioma todavía pueden hacer Tab. sangría. Supongo que al incluir c-basic-indent está trabajando en el código C; por lo que debe indicarle al modo C que no desea Tab para sangrar. Esto debe hacerlo:

(eval-after-load "cc-mode" 
    '(define-key c-mode-map (kbd "TAB") 'self-insert-command)) 

Otra cosa le han acabado en es que, por defecto, las Retroceso intentos tecla para retroceder por una columna en lugar de un carácter. Lo siguiente debe hacerlo borrar un carácter:

(global-set-key (kbd "DEL") 'backward-delete-char) 
(setq c-backspace-function 'backward-delete-char) 
+0

Utilizo la configuración predeterminada de vim, excepto que utilizo una pestañas de 4. Ahora, esto funciona bastante bien, gracias. – rob

+0

Después de establecer un punto y coma, emacs desplaza la línea hacia la izquierda dos caracteres. ¿Sabes cómo apagarlo? Mi archivo de inicio se ve así en la actualidad (setq indent-tabs-mode t) (-set-key mundial (KBD "DEL") 'backward-delete-char) (setq c-retroceso-función' atrasado-delete-char) (set-default indent-tabs-mode t) (global-set-key (kbd "TAB") 'autoinserción-comando) (setq default-tab-width 4) (setq tab-width 4) (setq c-basic-indent 4) (setq backup-inhibited t) (eval-after-load "cc-mode" '(define-key c-mode-map (kbd "TAB")' self -Insertar mando)) (-selección del modo de eliminar t) (setq guardado automático por defecto-nil) – rob

+0

@ Rob Si usted no quiere que Emacs resangrar automáticamente cuando se presiona la tecla '; '(y algunos otros caracteres s), desvíbelos en 'c-mode-map' con' (eval-after-load "cc-mode" '(define-key c-mode-map ";" nil)) '.Si su queja es que Emacs no está sangrando al número de columnas que desea, dígale cuál es su estilo de sangría favorito; ver [el manual del modo C] (http://cc-mode.sourceforge.net/html-manual/Customizing-Indentation.html#Customizing-Indentation). – Gilles

Cuestiones relacionadas