Я привык Ctrl-Shift-Tв Firefox отменить закрытие вкладки, возможно ли получить подобную функциональность в Vim? Гугл не указал мне на что-нибудь полезное для этого.
2 ответа на вопрос
1
romainl
I'm not aware of an existing solution but it seems relatively easy to save the name of the deleted buffer in a variable on BufDelete and define a simple mapping that uses that variable. Let's see...
Спасибо, я не знал о событии BufDelete (и мой vimscript-fu все равно слаб). Можно ли превратить это в команду `:` вместо карты нормального режима?
sundar 10 лет назад
0
Это прекрасно работает в Cygwin, но в Windows gVim после добавления данного `autocmd` я получаю ошибку` E18: Неожиданные символы в: let` всякий раз, когда я делаю `: bd`. Я предполагаю, что это символы обратной косой черты в путях Windows. Не могли бы вы предложить способ обойти это?
sundar 10 лет назад
0
Хорошо, я разобрался со второй проблемой, изменив команду растяжения на `растянуть (": p: gs? \\? /? ")` решает эту проблему. Эта отмена теперь работает отлично, большое спасибо!
sundar 10 лет назад
0
Извините, я был АФК на ночь. Мое решение предполагало UNIX, потому что вы не много говорили о своей среде. Я рад, что это простое решение работает для вас.
romainl 10 лет назад
0
Черты не допускаются в именах переменных, что приводит к E18. Кроме того, вам, вероятно, следует перейти к полному пути.: p` для обработки изменений CWD и использования `fnameescape ()` в отображении.
Ingo Karkat 10 лет назад
1
@IngoKarkat, ответ отредактирован согласно вашему комментарию.
romainl 10 лет назад
0
0
BubbleMonster
Just to clarify, :bdelete in VIM is used to delete buffers (buffer delete). I am not aware of any way of 'undoing' it, however, maybe the following will help you:
I have a file on my desktop called test.rtf
If I use the following command in the terminal: vim test.rtf followed by: :bdelete + Enter - it opens up a blank screen ready to type into. If you type in: :q followed by Enter to quit, you aren't saving any changes, so you are effectively undoing the mistake.
I hope this may be somewhat helpful.
Мне кажется, что вы предполагаете, что `: bdelete` очищает содержимое открытого в данный момент файла или чего-то еще, но на самом деле просто закрывает файл, поэтому я не ищу способы отменить любые сделанные изменения (и`: В любом случае q` этого не сделает, нам понадобится либо `: q!`, либо лучше `: e!`). То, что я ищу, это простой ярлык, чтобы избежать необходимости набирать `: e`, за которым следует весь путь только что закрытого файла, когда я хочу открыть его немедленно.
sundar 10 лет назад
0