Вопрос лучше всего дать на примерах:

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

Это возможно?

4 ответа4

0

Вы можете рассмотреть возможность использования буферов vim для редактирования нескольких файлов.

Отредактируйте оба файла: vim example.txt someother.txt затем переключайтесь между ними, используя :buffer <filename> .

Смотрите также более простой совет по переключению буфера и FAQ по буферу Vim.

0

Пример решения, работает под 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
}

Наслаждайтесь!

0

Я не думаю, что есть такой общий способ повторного использования рабочих мест.

Для вашего рабочего процесса редактирования вы можете перейти на 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. Если он уже открыт, он просто переключается на существующий буфер.

0

Нет. Vim (или любое другое приложение на этот счет) не может сообщить bash, что вместо этого он должен предпринять другое действие.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .