Me gustaría ir al archivo que acabo de editar el último y siguiente tipo de complementos de MRU.
:bnext
y :bprev
funciona a veces, pero la mayoría de las veces acabo en un archivo oscuro que no recuerdo haber editado y me veo obligado a recurrir al complemento MRU.
¿Hay alguna forma de arreglarlo?
Ctrl-^
intercambia entre los dos últimos archivos. ¿Cuál es la mejor manera de navegar entre más?
Entiendo que puede ser complicado, pero estoy de acuerdo con cualquier cosa que pueda mejorar el :bn
:bp
comportamiento actual . Los amortiguadores que veo a menudo están totalmente fuera de lugar. ¿Quizás haya un complemento que pueda realizar un seguimiento de los archivos recientes y proporcionar ganchos para que pueda crear asignaciones?
Responder a los comentarios me aclaró un poco los pensamientos. Creo que lo que quiero es poder moverme por los archivos en el orden de los últimos guardados. De esa manera, si vuelvo al historial, el orden no cambiará hasta que guarde el archivo, que luego se convierte en el último y haga un paso "atrás" al archivo guardado justo antes, es decir, desde el que he comenzado.
Algo así como un Ctrl-O
Ctrl-I
par que cambia los archivos inmediatamente sin saltar alrededor del búfer actual. Algo así como u
y U
en netrw:
u Change to recently-visited directory |netrw-u|
U Change to subsequently-visited directory |netrw-U|
Ctrl-O
(o a vecesCtrl-T
) hasta que llegue allí.Ctrl-O
yCtrl-I
. Pero salta entre los puntos de edición y eso rompe el flujo. Todo lo que quiero ir y venir entre buffers en orden de acceso. ¿Cómo muestran los complementos una lista de los archivos más recientes? ¿Los siguen internamente?Ctrl-^
intercambia entre los dos últimos archivos. Pero, ¿cuál es la mejor manera de navegar entre más?Ctrl-O/I
son ventanas específicas de ventana, mientras que MRU es generalmente global. Si desea ordenar por acceso reciente, tan pronto como salte una vez, el orden de la lista cambia, lo que complica aún más las cosas.Respuestas:
Escribí una pequeña función para presionar repetidamente CTRL-O para mí, hasta que cambie el búfer.
Lo puedes encontrar aquí . Lo asigné a CTRL-U, pero podría anular CTRL-O si lo deseara.
Probablemente podrías escribir algo similar para
<C-I>
.Cuestiones:
Relacionado:
:jumps
enumera las ubicaciones históricas por las que CTRL-O retrocederá.fuente
:kwbd
para cerrar algunos buffers, he notado que Vim retrocede a los buffers anteriores en el orden histórico inverso esperado. Tal vez Vim tenga una lista MRU que no comparte con nosotros, o tal vez elija a qué búfer recurrir en función del historial de ubicaciones CTRL-O (:jumps
).autocmd InsertLeave * normal mZ
se recuerda el último archivo editado en la marca mundial Z . Puedes volver a hacerlo cong'Z
. // Sí,nmap <C-y> g'Z
pero aún tiendo a usar Ctrl-U con más frecuencia.Puede usar
:ls
para mostrar todos los buffers. Por ejemplo:Para volver al búfer
ext.markdown
, use:e +Nbuf
, dondeN
es el número del búfer de la primera columna. Por ejemplo::e +2buf
.Puede crear una función simple para una experiencia más interactiva:
Después de usar
:ChooseBuf
o<Leader>b
simplemente puede escribir el número del búfer que desea editar.Esto no está "utilizado más recientemente", ya que el pedido está "abierto más recientemente" (esto probablemente también sea por qué
:bnext
/:bprev
no funciona como se espera).fuente
<C-6>
es lo que necesita, que lo lleva de vuelta al búfer anterior que tenía abierto antes del actual. También hay:bprev
&:bnext
que podrías usar para lo mismo.fuente
<C-6>
no está mal, pero no puedo usar eso para retroceder dos buffers.bprev
ybnext
no están en orden de saltos.<C-6>
lo es<C-^>
. Si bien en muchos emuladores de terminal no hay distinción, en algunos (incluido el que se incluye con OS X), sí lo hay. Para el último caso,Shift
se requiere el uso de la clave (asumiendo el diseño Qwerty).También puede usar
:oldfiles
para obtener una lista de los archivos que editó.La lista tendrá números asociados con nombres de archivo. Elija un archivo, anote el número (digamos 14) y ábralo con
:edit #<14
También puede ejecutar otros comandos en ese archivo o pasar varios archivos a un comando a la vez. Más sobre esto AQUÍ
fuente
:bro[wse] ol[dfiles][!]