Me gustaría ir al archivo que acabo de editar el último y siguiente tipo de complementos de MRU.
:bnexty :bprevfunciona 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 :bpcomportamiento 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-Ipar que cambia los archivos inmediatamente sin saltar alrededor del búfer actual. Algo así como uy Uen 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-OyCtrl-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/Ison 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:
:jumpsenumera las ubicaciones históricas por las que CTRL-O retrocederá.fuente
:kwbdpara 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 mZse recuerda el último archivo editado en la marca mundial Z . Puedes volver a hacerlo cong'Z. // Sí,nmap <C-y> g'Zpero aún tiendo a usar Ctrl-U con más frecuencia.Puede usar
:lspara mostrar todos los buffers. Por ejemplo:Para volver al búfer
ext.markdown, use:e +Nbuf, dondeNes 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
:ChooseBufo<Leader>bsimplemente 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/:bprevno 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&:bnextque podrías usar para lo mismo.fuente
<C-6>no está mal, pero no puedo usar eso para retroceder dos buffers.bprevybnextno 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,Shiftse requiere el uso de la clave (asumiendo el diseño Qwerty).También puede usar
:oldfilespara 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 #<14Tambié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][!]