Настройте так, чтобы каталог / home находился в отдельном разделе. Таким образом, если вам нужно выполнить новую установку, вы можете переформатировать другие разделы и сохранить текущий / домашний каталог. Вы даже можете использовать каталог / home в качестве второго диска и поместить 2 или более версий Linux в отдельные корневые разделы! Я использую небольшой основной диск 80 ГБ (hda) для корневого диска (/, / boot, / usr, / var, / etc и т. Д.), А затем диск 1 ТБ (hdb) для / home. Я повторно использовал тот же диск / home для Debian, Ubuntu и LinuxMint, поскольку Ubuntu и Mint являются производными от Debian.
Звучит как забавная игра в гольф. Вот один из вариантов:
Запустите безобидную команду с именем файла; введите достаточную часть имени файла, чтобы разрешить завершение TAB -.
: a_file<TAB>
Используйте !!$
для ссылки на последний аргумент предыдущей команды:
ln !!$ ~/path/to/a/new/hardlink/!!$
Благодаря полезному цитированию zsh это безопасно даже при наличии IFS -, содержащих имена файлов. Вы заметите, что как только вы нажмете пробел после первого !!$
, zsh расширит имя файла; то же самое, если вы добавите пробел в конце команды.
Требуемое количество символов:
!!$
:<SPACE>
8 + плюс достаточно для начального завершения табуляции.
С привязками Emacs по умолчанию это всего две комбинации клавиш:ESC-2 ESC-^_
(т.е. Esc2EscCtrl +_или Alt + 2Ctrl + Alt +_). Это командаcopy-prev-word
с числовым аргументом 2 (, аргумент по умолчанию 1 будет копировать~/path/to/a/new/hardlink/
). Если имя файла содержит пробелы (в кавычках ), вам понадобится ESC-2 ESC-x copy-prev-shell-word RET
. Вы можете захотеть привязать эту команду к более удобной клавише, особенно если ваша раскладка клавиатуры требует Shift для_. Вы также можете использовать эти команды в режиме vi, но ни одна из них не привязана к клавише по умолчанию.
Если вы ошиблись с числовым аргументом, нажмите Ctrl +_для отмены и повторите попытку.
В режиме vi
это будет <esc>0wyt $p
переход в командный режим, 0
начало строки, w
переход к следующему слову (переход к имени файла)yt
переход к пробелу (чтобы получить длинное имя файла, предполагая, что в имени файла нет пробелов ), а затем $p
, чтобы поместить то, что было выдернуто, в конец строки. Это намного быстрее, чем описывать его, когда вы запоминаете vi
движения.
Вы также можете настроить bindkey
для извлечения -второго аргумента, хотя это довольно специфический код для такого варианта использования, здесь привязанный к control+t , но это может быть все, что вы хотите.
function yank-put {
local -a words
words=(${(z)LBUFFER})
if (( $#words > 1 )); then
BUFFER+=$words[2]
CURSOR+=${#words[2]}
fi
}
zle -N yank-put
autoload -U yank-put compinit
compinit
set -o vi
bindkey -M viins "^t" yank-put