¿Cómo puedo cambiar la posición / orden de mi pestaña actual Vim
? Por ejemplo, si quiero reposicionar mi pestaña actual para que sea la primera pestaña.
200
Puede reubicar una pestaña :tabm
utilizando argumentos absolutos relativos o de índice cero.
absoluto:
:tabm i
relativo:
:tabm +i
:tabm -i
Es una característica relativamente nueva. Entonces, si no funciona, intente actualizar su vim.
:tabm
acepta argumentos relativos en vim 7.3.¿Te refieres a mover la pestaña actual? Esto funciona usando tabmove.
Tengo dos combinaciones de teclas que mueven mi pestaña actual, una hacia la izquierda o la derecha. ¡Muy útil!
EDITAR: Aquí está mi macro VIM. No soy un gran codificador de ViM , así que tal vez podría hacerse mejor, pero así es como funciona para mí:
Después de esto, puede vincular claves, por ejemplo, así en su
.vimrc
:Ahora puede mover su pestaña actual presionando F9 o F10.
fuente
Estaba buscando lo mismo y después de algunas publicaciones encontré una forma más simple que una función:
El tabpagenr () devuelve la posición real ficha y tabmove utiliza índices.
Mapeé la derecha a Ctrl + L y la izquierda a Ctrl + H:
fuente
:execute "tabmove" tabpagenr() + 1 <CR>
para moverme a la derecha. Para MacVim 8.0.1420 (144) .Mover la pestaña actual a la enésima posición
Donde
n
hay un número que denota la posición (comenzando desde cero)Mover pestañas a la izquierda / derecha
Creo que una mejor solución es mover la pestaña hacia la izquierda o hacia la derecha a su posición actual en lugar de calcular el valor numérico de la nueva posición en la que la quieres.
Con los mapas de teclas anteriores, podrá mover la pestaña actual:
fuente
+tabmove
ytabmove+
? ¿Importa la posición?Además de las excelentes sugerencias en otras respuestas, también puede arrastrar las pestañas con el mouse para moverlas, si tiene habilitado el soporte para mouse.
Esto está activado de forma predeterminada en MacVim y otras implementaciones de GUI vim, ya sea utilizando las pestañas de widget de GUI o las pestañas de estilo de terminal en modo GUI.
También funciona en modo tty puro Vim, si tiene
set mouse=a
y tiene un terminal adecuado (xterm y la mayoría de sus emuladores, como gnome-terminal, Terminal.app, iTerm2 y PuTTY / KiTTY, por nombrar una vista). Tenga en cuenta que los clics del mouse más allá de la columna 222 también requierenset ttymouse=sgr
; Ver en Vim, ¿por qué mi mouse no pasa de la columna 220? para antecedentes sobre eso.He escrito un complemento llamado vim-tabber que proporciona algunas funcionalidades adicionales para intercambiar pestañas, cambiarlas y agregar a las capacidades de los comandos de manipulación de pestañas incorporados, sin dejar de ser en gran medida compatible con las funciones incorporadas. Incluso si elige no usar el complemento, hay información general sobre el uso de pestañas en el archivo README.
fuente
Por alguna razón, la respuesta de la función dejó de funcionar para mí. Sospecho un conflicto con vim-ctrlspace . Independientemente, la matemática en la respuesta de la función es innecesaria, ya que Vim puede mover pestañas de izquierda a derecha con funciones integradas. Solo tenemos que manejar el caso de envoltura , porque Vim no es fácil de usar.
fuente
-tabm
y+tabm
en mi vim 7.4 no mueven correctamente las pestañas. Además, mi:help tabm
no enumera esto como una sintaxis válida. Así que reemplacé el últimoelse execute ...endif
con elelseif a:direction == 1 execute "tabmove" s:current_tab else execute "tabmove" s:current_tab - 2 endif
uso de la respuesta de Pablotabmove
y el signo-
/+
en laexecute
línea.Aquí está mi macro, usando argumentos relativos de la respuesta de @ maybeshewill:
Se encarga de la caja de envoltura.
fuente