2011-04-11 12 views
11

Este refugio me ha estado molestando desde el primer día de uso de Vim durante 3 años. Cada vez que trato de sangrar una línea a través de Shift + > cuando el PRIMER CARÁCTER de la línea comienza con un "#", no funciona en absoluto, independientemente de los tipos de archivos (.php, .txt, etc. .). Debido a que # se utiliza para hacer comentarios en PHP y también lo uso para la decoración de archivos de texto algo como:Problema de sangrado del editor Vim cuando el primer carácter de la línea es un carácter # nítido

# This is a comment 

### 1. Instruction one 

# ------------ this is an sample --------------

yo uso Vim 7.2 en Ubuntu con los siguientes ajustes .vimrc

syntax on 
set t_Co=256 
set incsearch 
set hlsearch 
set number 
set nowrap 
set nowrapscan 
set ignorecase 
set et 
set sw=4 
set smarttab 
set smartindent 
set autoindent 
set textwidth=0 
set noequalalways 
set formatoptions=1 
set lbr 
set vb  
set foldmethod=marker 

Gracias!

Respuesta

4

insertar los siguientes en su .vimrc:

set nosmartindent 

Es smartindent que hace que las líneas que comienzan con # a no ser sangría como se desea. Puede leer más sobre esto escribiendo :help smartindent. Si utiliza un archivo de sangrado para scripts de Python (o cualquier otra sintaxis), incluya lo siguiente también.

filetype indent on 
+3

Esto no lo resuelve por mí. Tengo 'nosmartindent' y 'filetype indent on' y todavía vim no me permite sangrar líneas comenzando con '#'. También mueve el cursor a la primera columna cuando escribo '#' como primer carácter en una línea. ¿Alguna pista? –

+1

@ MichaelHärtl Tuve exactamente el mismo problema, de manera predeterminada .Rmd tiene este comportamiento molesto por defecto, el encantamiento apropiado que alterna este comportamiento es: ': set nocindent' para apagarlo y': set cindent' para volverlo atrás encendido, como se define aquí: http://vim.wikia.com/wiki/Restoring_indent_after_typing_hash –

0

Se puede utilizar:

inoremap # X^H# 

creo que este comportamiento no es totalmente equivocado para C/C++, por lo tanto, yo sólo lo cambio en Python/php.

autocmd FileType python,php inoremap # X^H# 

:help smartindent dice:

Al escribir # como el primer carácter de una nueva línea, el guión de se elimina esa línea, el # se pone en la primera columna. La sangría se restaura para la línea siguiente.

Si no lo desea, utilice esta asignación: :inoremap # X^H#, donde ^H se ingresa con CTRL-V CTRL-H. Al usar el comando >>, las líneas que comienzan con # no se desplazan hacia la derecha.

Cuestiones relacionadas