Estoy usando viUbuntu 12.10. Algunos archivos son bastante largos, así que cuando quiero ir al medio del archivo, tengo que desplazarme hacia abajo o hacia abajo.
¿Existe un atajo de VIM para ir a un número de línea exacto?
@vim expertos. ¿Es esto realmente específico de Ubuntu- / bash- / Linux (según las etiquetas OP)? No estoy usando mucho vim, pero para mis usos no he notado la más mínima diferencia en Ubuntu / CentOS / Suse / Windows.
Alexander Malakhov
Respuestas:
143
:150
te llevará a la línea 150 en vi
:1500
te llevará a la línea 1500 en vi
Según los comentarios, es posible que desee probar.
150G
para llegar a la línea 150, que es menos pulsaciones de teclas,
:150Enter
si no está seguro de qué línea está intentando
:set nu!
Observe la :
Si desea ver siempre la línea, considere editar su perfil de vim. Más amenudo
vi ~/.vimrc
y añadir
:set nu!
y escribe y sal
:wq
#or you could use :x
esto se puede hacer fuera de vi. Por ejemplo, si quiero eliminar la línea 5000 en un archivo de texto, podría usar un lenguaje de programación. Por ejemplo, usando sed sería lo siguiente
sed -i '5000d;' inputFile.txt
para eliminar las líneas 10 a 20 sería
sed -i '10,20d;' inputFile.txt
observe que -i editará el archivo en su lugar. Sin el -i, se apagará estándar. Intentalo. puede redirigir stdout a un archivo
sed '5001,$d;' inputFile.txt >> appenedFile.txt
esto podría tener mucho que hacer aquí para ti. esto elimina la línea 5001 a $. Siendo $ el final del archivo. >> se agregará a un archivo. donde como> crea un nuevo archivo.
si tiene curiosidad por saber cuántas líneas hay en un archivo, puede escribir wc -l inputFile.txt
algo de esto puede parecer tremendamente trivial, pero si está tratando de editar un archivo con 50.000 líneas, vi puede tardar un minuto en abrirse y recorrer. donde si sabe que solo desea eliminar la última línea, puede usar sed y hacerlo en una fracción del tiempo.
sed también puede buscar y reemplazar dentro de un archivo. Pero quizás awk, perl o python también podrían ser una solución viable.
pero en general, es posible que desee encontrar un buen tutorial sobre vi. existen miles. Consultaría google. Quizás encuentre un Cheatsheat VIM.
tómese unos minutos y comience a leer este documento. Te recompensa a largo plazo por la eficiencia en la edición, especialmente el archivo de configuración.
Desde una terminal abierta, en un shell bash, simplemente edite su archivo ejecutando:
$ vi +N yourfile
¿Dónde Nestá el número de línea?
Para ver ( moreo less;):
$ less +N yourfile
$ more +N yourfile
El signo +significa comando para ejecutarse al inicio . Entonces, si el comando es solo un número, entonces vi, lessy more, saltará a esto como número de línea .
Pero también puede usar /regexpara encontrar la primera aparición de una cadena o expresión regular específica:
$ less +/Error logfile
$ less -i +/error logfile # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...
Respuestas:
te llevará a la línea 150 en vi
te llevará a la línea 1500 en vi
Según los comentarios, es posible que desee probar.
150G
para llegar a la línea 150, que es menos pulsaciones de teclas, :150Enter si no está seguro de qué línea está intentando
:set nu!
Observe la :
Si desea ver siempre la línea, considere editar su perfil de vim. Más amenudo
y añadir
:set nu!
y escribe y sal
:wq #or you could use :x
esto se puede hacer fuera de vi. Por ejemplo, si quiero eliminar la línea 5000 en un archivo de texto, podría usar un lenguaje de programación. Por ejemplo, usando sed sería lo siguiente
sed -i '5000d;' inputFile.txt
para eliminar las líneas 10 a 20 sería
sed -i '10,20d;' inputFile.txt
observe que -i editará el archivo en su lugar. Sin el -i, se apagará estándar. Intentalo. puede redirigir stdout a un archivo
sed '5001,$d;' inputFile.txt >> appenedFile.txt
esto podría tener mucho que hacer aquí para ti. esto elimina la línea 5001 a $. Siendo $ el final del archivo. >> se agregará a un archivo. donde como> crea un nuevo archivo.
si tiene curiosidad por saber cuántas líneas hay en un archivo, puede escribir
wc -l inputFile.txt
algo de esto puede parecer tremendamente trivial, pero si está tratando de editar un archivo con 50.000 líneas, vi puede tardar un minuto en abrirse y recorrer. donde si sabe que solo desea eliminar la última línea, puede usar sed y hacerlo en una fracción del tiempo.
sed también puede buscar y reemplazar dentro de un archivo. Pero quizás awk, perl o python también podrían ser una solución viable.
pero en general, es posible que desee encontrar un buen tutorial sobre vi. existen miles. Consultaría google. Quizás encuentre un Cheatsheat VIM.
fuente
150G
hace lo mismo que:150
. No es más rápido, pero puede ser más fácil de recordar.<CR>
en cuenta.Otros consejos de vim: en modo comando
fuente
tómese unos minutos y comience a leer este documento. Te recompensa a largo plazo por la eficiencia en la edición, especialmente el archivo de configuración.
fuente
Desde una terminal abierta, en un shell bash, simplemente edite su archivo ejecutando:
¿Dónde
N
está el número de línea?Para ver (
more
oless
;):El signo
+
significa comando para ejecutarse al inicio . Entonces, si el comando es solo un número, entoncesvi
,less
ymore
, saltará a esto como número de línea .Pero también puede usar
/regex
para encontrar la primera aparición de una cadena o expresión regular específica:$ less +/Error logfile $ less -i +/error logfile # -i Causes less's searches to ignore case $ vi +/open.*myfile myprog...
fuente
Otro consejo: dado que eres nuevo en vim, correr
vimtutor
puede ser muy útil.fuente