Псевдоним для открытия последнего файла, отредактированного в Vim

Я запускаю Ubuntu 19.10, и я пытаюсь исказить команду "vv" для открытия последнего отредактированного файла в Vim. Ниже мои результаты выполнения команды 'псевдоним'.

~/Documents/code$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias cls='clear'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias sl='ls --color=auto'
alias vv='!vi'

Я получаю ошибку:

~/Documents/code$ vv
Command '!vi' not found, but there are 15 similar ones.

! v и! vi уже работают команды для открытия последнего отредактированного файла в Vim, но я хочу, чтобы vv также был командой, чтобы сделать ту же функцию, потому что иногда я ленив.

Вещи я попробовал:

  • Обновление ~/.bashrc с новым псевдонимом
  • Перезапуск компьютера
  • Откройте новый терминал

Любая справка ценилась бы, спасибо.

2
задан 2 November 2019 в 12:41

2 ответа

Это происходит, потому что расширение истории выполняется перед расширением псевдонима.

Можно вызвать расширение истории в псевдониме при помощи history команда, с помощью замены команды для замены команды, которая запрашивает историю с ее выводом:

alias vv='$(history -p !vim)'

но это не обработает имена файлов правильно, если они будут содержать символы, которые могли бы инициировать расширение, такое как пробелы. Можно избежать этого использования eval:

alias vv='eval $(history -p !vim)'
2
ответ дан 2 December 2019 в 02:11

Используйте это:

alias vv="vim -c 'norm! ^O'"

norm выполните нормальную команду режима ^O как будто Вы вводите его. Посмотрите :help :normal для получения дополнительной информации.

^O один символ, можно ввести его в режиме вставки путем ввода <C-V><C-O>. Это приносит Вам для длительности позиции курсора, которая находится в последнем файле, который Вы отредактировали.

Таким образом, псевдоним выше совпадает с вводной энергией и ctrl-o нажатия.

2
ответ дан 2 December 2019 в 02:11

Другие вопросы по тегам:

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