при выходе из vim, как очистить содержимое отредактированного файла [duplicate]

вы можете использовать всегда:

'C:/mydir'

это работает как в linux, так и в окнах. Другая возможность -

'C:\\mydir'

, если у вас есть проблемы с некоторыми именами, вы также можете попробовать сырые строковые литералы:

r'C:\mydir'

, однако лучше всего использовать функции модуля os.path которые всегда выбирают правильную конфигурацию для вашей ОС:

os.path.join(mydir, myfile)
0
задан jcxl 24 July 2015 в 20:04
поделиться

5 ответов

Есть способ сделать больше материалов, отредактировав свой файл .vimrc

Добавьте это в свой .vimrc

command Qc :call ClearAndExit()
function ClearAndExit()
    :!clear
    :q!
endfunction

, чтобы использовать :Qc для выхода ... он также очистит экран

1
ответ дан gevorg 25 August 2018 в 22:05
поделиться

Если Vim скомпилирован с поддержкой переключения xterm-экранов, он может сделать это по умолчанию, если вы установите t_ti и t_te (обычно показывает Vim, какие значения должны быть установлены самим) , Детали gory объясняются в :h xterm-screens (вклеены ниже)

(Из comp.editors, Юрген Вейгерт, в ответ на вопрос)

:> Другой вопрос заключается в том, что после выхода из vim экран остается следующим:> было, т.е. содержимое файла, который я просматривал (редактирование), оставалось на:> экране. Результат моего предыдущего, как «ls», был потерян:>> т.е. больше не находится в буфере прокрутки. Я знаю, что существует способ:> восстановить экран после выхода из vim или других редакторов vi, например:> Я просто не знаю, как это сделать. Помогает оценить. Благодарю. :: Я думаю, кто-то другой может ответить на это. Я предполагаю, что vim и vi делают: одно и то же, что и для заданной установки xterm.

Они не обязательно делают то же самое, что и проблема termcap vs. terminfo. Вы должны знать, что для описания атрибутов определенного типа терминалов существуют две базы данных: termcap и terminfo. Это может привести к различиям, когда записи отличаются друг от друга, и когда в рассматриваемых программах используется terminfo, а другой использует termcap (также см. + Terminfo).

В вашей конкретной проблеме вы ищете управляющие последовательности ^ [[? 47h и ^ [[? 47l. Они переключаются между xterms alternate и основным экранным буфером. В качестве быстрого обходного пути последовательность команд, такая как echo -n "^ [[? 47h"; vim ...; echo -n "^ [[? 47l" может делать то, что вы хотите. (Мое обозначение ^ [означает символ ESC, далее вниз вы увидите, что базы данных используют \ E вместо этого).

При запуске vim передает значение переменной termcap ti (terminfo: smcup) в терминал. При выходе из него он перекликается с te (terminfo: rmcup). Таким образом, эти две переменные являются правильным местом, где должны выполняться вышеупомянутые управляющие последовательности.

Сравните запись xterm termcap (найденную в / etc / termcap) с помощью записи xterm terminfo (полученной с помощью «infocmp -C xterm» «). Оба должны содержать записи, похожие на:: te = \ E [2J \ E [? 47l \ E8: ti = \ E7 \ E [? 47h:

PS: Если вы обнаружили какую-либо разницу, кто-то (ваш sysadmin?) следует лучше проверить полную базу данных termcap и terminfo для согласованности.

ПРИМЕЧАНИЕ 1. Если вы перекомпилируете Vim с FEAT_XTERM_SAVE, определенным в feature.h, встроенный xterm будет включать упомянутые «te» и «ti ".

ПРИМЕЧАНИЕ 2. Если вы хотите отключить переключение экрана, и вы не хотите менять свой termcap, вы можете добавить эти строки в свой .vimrc:: set t_ti = t_te =

1
ответ дан Christian Brabandt 25 August 2018 в 22:05
поделиться

Добавьте к своему ~ / .vimrc:

au VimLeave * :!clear
0
ответ дан EntangledLoops 25 August 2018 в 22:05
поделиться

Я использую псевдоним для очистки любого метода выхода, включая :q, :wqa. (это для моего заварного двоичного файла osx, найдите свой собственный двоичный код vim с which vim)

# .zshrc
alias vim="/usr/local/Cellar/vim/8.0.0094/bin/vim && clear"
0
ответ дан Plato 25 August 2018 в 22:05
поделиться

Да. Вы, безусловно, можете.

Используйте команду UNIX для очистки экрана. clear

0
ответ дан Tyler Brown 25 August 2018 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: