Je ferme un onglet dans vim et réalise immédiatement que je dois le rouvrir à nouveau pour quelque chose. Est-il possible d'annuler l'onglet de fermeture dans Vim 7.2?Annuler l'onglet Fermer dans Vim
Répondre
J'utilise un MRU (most recently used files) plugin. Je peux donc modifier les 30 derniers fichiers que je viens sous la direction
Voici les métadonnées du plugin MRU:
File: mru.vim
Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
Version: 3.2 Last Modified:
September 22, 2008
Utilisation
Pour afficher la liste et modifier des fichiers dans la liste MRU, vous pouvez utilisez la commande ": MRU". La commande ": MRU" affiche la liste des fichiers MRU dans une fenêtre Vim temporaire. Si la fenêtre MRU est déjà ouverte, la liste MRU affichée dans la fenêtre est actualisée.
Pouvez-vous résumer l'utilisation de base? –
Je ne comprends pas cette réponse ... Cela semble recommander l'utilisation d'un plugin? – Carpetsmoker
@Carpetsmoker Oui, c'est: mru.vim. – trusktr
La réponse simple est non, il n'y a rien intégré.
Mais une solution réalisable serait d'utiliser un plug-in comme l'excellent BufExplorer. Étant donné que la valeur par défaut la liste les plus récemment utilisés premiers tampons, la réouverture d'un onglet fermé serait aussi simple que d'appuyer sur \bet
Comme mentionné par Lucia, vous devez d'abord descendre avec '
Votre fichier est probablement encore ouvert dans un tampon:
:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number
Pour réouvrir tampon 18, pour Exemple:
:tabnew +18buf
Utilisez le plug-in Ben suggéré: BufExplorer Github Mirror
Dans sa réponse, il faudrait appuyer sur <Leader>be<Down>t
. Ajout d'un raccourci bit:
map <silent><leader>t <leader>be<Down>t
Alors que le simple <leader>t
ferait le travail.
:tabnew#
fichier récemment fermé ouvre à nouveau dans un nouvel onglet
Modifier: S'il vous plaît utiliser la réponse de greyfade. Je n'aime pas ma réponse, mais je la garde ici pour des références et des informations utiles.
N'a pas fonctionné pour moi - Vim 7.4 –
Bizarre, semble que cela a fonctionné au début maintenant il ouvre des tampons indépendants. –
'#' est le dernier fichier édité dans la fenêtre courante. La fermeture d'un onglet n'enregistre pas le fichier en tant qu'alternatif ("#"). Vous devez le rechercher par numéro de tampon (': ls') – Sukima
S'il y avait un événement BufferClose
ce serait facile ... but it seems that it is not possible since it is not possible for window creation. Mais dans le cas des onglets, nous pouvons détecter si un onglet a été fermé en gardant un nombre d'onglets et en comptant la différence entre TabLeave
et TabEnter
.
Utilisation: <leader>tr
rouvre le dernier onglet fermé dans un nouvel onglet (en supposant que l'onglet avait un seul tampon):
let g:reopenbuf = expand('%:p')
function! ReopenLastTabLeave()
let g:lastbuf = expand('%:p')
let g:lasttabcount = tabpagenr('$')
endfunction
function! ReopenLastTabEnter()
if tabpagenr('$') < g:lasttabcount
let g:reopenbuf = g:lastbuf
endif
endfunction
function! ReopenLastTab()
tabnew
execute 'buffer' . g:reopenbuf
endfunction
augroup ReopenLastTab
autocmd!
autocmd TabLeave * call ReopenLastTabLeave()
autocmd TabEnter * call ReopenLastTabEnter()
augroup END
" Tab Restore
nnoremap <leader>tr :call ReopenLastTab()<CR>
cela peut être déplacé à vi.stackexchange.com? – Sukima
Salut, [ce bit de vimscript et le plugin windowlayout] (https: //www.reddit.com/r/vim/comments/3ke941/undo_close_tab/cux8gh2) fait le travail: il rouvre l'onglet que vous venez de fermer et ramène la disposition de la fenêtre que vous aviez. –