Другое решение для изменения формы курсора между двутавровой балкой и блоком (для подчеркивания используйте \ 033 [4 q
). Добавьте это в свой ~ / .zshrc
.
zle-keymap-select () {
if [ $KEYMAP = vicmd ]; then
printf "\033[2 q"
else
printf "\033[6 q"
fi
}
zle -N zle-keymap-select
zle-line-init () {
zle -K viins
printf "\033[6 q"
}
zle -N zle-line-init
bindkey -v
Изменено из https://bbs.archlinux.org/viewtopic.php?id=95078 . Проверено в gnome-terminal 3.22.
Еще одно решение для изменения формы курсора можно найти здесь . Этот, по-видимому, работает для iTerm2, и у меня нет средств для тестирования, но я добавляю его сюда на случай, если это будет полезно для кого-то еще. Последним добавлением к вашему ~ / .zshrc
будет
function zle-keymap-select zle-line-init
{
# change cursor shape in iTerm2
case $KEYMAP in
vicmd) print -n -- "\E]50;CursorShape=0\C-G";; # block cursor
viins|main) print -n -- "\E]50;CursorShape=1\C-G";; # line cursor
esac
zle reset-prompt
zle -R
}
function zle-line-finish
{
print -n -- "\E]50;CursorShape=0\C-G" # block cursor
}
zle -N zle-line-init
zle -N zle-line-finish
zle -N zle-keymap-select
Не знаю, можно ли это сделать, как вы говорите, "используя только системные файлы", но можно используйте resize2fs
, чтобы получить оценку без монтажа. Со страницы руководства:
-M Shrink the file system to minimize its size as much as possible,
given the files stored in the file system.
-P Print an estimate of the number of file system blocks in the
file system if it is shrunk using resize2fs's -M option and then
exit.
Таким образом, resize2fs -P /dev/PARTITION
даст вам оценку того, сколько блоков занимает файловая система на этом разделе. Общее количество блоков на разделе можно найти, как вы сказали, из /proc/partitions
или с помощью blockdev --getsz /dev/PARTITION
, затем выполните небольшие арифметические действия. Я не знаю, насколько близок предполагаемый минимальный размер к фактическому использованию диска, но я предполагаю, что минимальный размер больше, чем фактическое использование диска, чтобы дать некоторую свободу действий. Мы можем проверить это, смонтировав его и запустив du
.
# cfdisk /dev/sda
Эта команда покажет несмонтированное и нераспределенное пространство, содержащееся в /dev/sda, как показано на снимке экрана ниже: