Вопрос лучше всего дать на примерах:
vim example.txt #Opens Vim on new or existing file
Ctrl+Z
vim someother.txt
Ctrl+Z
vim example.txt #Auto-runs `fg 1` since example.txt is already open
Это возможно?
Вопрос лучше всего дать на примерах:
vim example.txt #Opens Vim on new or existing file
Ctrl+Z
vim someother.txt
Ctrl+Z
vim example.txt #Auto-runs `fg 1` since example.txt is already open
Это возможно?
Вы можете рассмотреть возможность использования буферов vim для редактирования нескольких файлов.
Отредактируйте оба файла: vim example.txt someother.txt
затем переключайтесь между ними, используя :buffer <filename>
.
Смотрите также более простой совет по переключению буфера и FAQ по буферу Vim.
Пример решения, работает под Bash (требуется Paste, Grep, Sed). Это специфично для Vim, но может быть адаптировано для другого редактора.
jim () {
paste <(jobs) <(jobs -p | xargs -n1 ps o cmd= -p) |
grep "$1$" > ~/tmp/jm && fg $(cat ~/tmp/jm | sed -r 's/^\[([0-9]+).*/\1/')
[[ $? == 1 ]] && vim $1
}
Наслаждайтесь!
Я не думаю, что есть такой общий способ повторного использования рабочих мест.
Для вашего рабочего процесса редактирования вы можете перейти на emacs. Вместо нажатия ctrl-z, чтобы вернуться в оболочку, вы можете запустить дочернюю оболочку в буфере emacs с M-x ansi-term
или M-x shell
и переключаться между оболочкой и вашими буферами редактирования или даже разделять представление на показать оба сразу. Emacs отслеживает рабочий каталог оболочки, поэтому, если вы перемещаетесь по файловой системе и решаете, что хотите открыть файл, вместо того, чтобы набирать emacs somefile
, вы можете просто сказать emacs открыть его с помощью C-x C-f somefile<RET>
и он откроет файл в другом буфере и переключиться на него.
Вы также можете запустить сервер emacs и запустить emacsclient somefile
чтобы сообщить существующему сеансу emacs открыть файл somefile. Если он уже открыт, он просто переключается на существующий буфер.
Нет. Vim (или любое другое приложение на этот счет) не может сообщить bash, что вместо этого он должен предпринять другое действие.