Я использовал бы энергию. От нормального режима:
:%center 5
... будет действовать на каждую строку в файле (это - значение %
в этом случае), центрируя его к пяти символам (называемый столбцами в документации энергии). Это будет действовать точно, как Вы описываете. Для получения самой длинной строки в файле (для использования в центральной команде) использовать wc -L file.txt
; или в энергии:
:! wc -L %
К сожалению, это не доступно в ванили vi, но так как это отмечено 'Linux', вероятно, что у Вас есть энергия в Ваших репозиториях, по крайней мере.
Можно также сделать это в одной строке с:
vim file.txt -c '%center 5' -c 'wq' &> /dev/null
... но я уверен, что это не самый быстрый способ сделать вещи.
Вы можете создать файл ~/.xkb/символы/локал
, содержащий:
xkb_symbols "local" {
key <LWIN> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
key <MENU> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
key <LALT> { [ Control_L ] };
key <RALT> { [ Control_R ] };
};
или
xkb_symbols "local" {
key <LWIN> {
type= "ONE_LEVEL",
symbols[Group1]= [ Alt_L ]
};
key <MENU> {
type= "ONE_LEVEL",
symbols[Group1]= [ Alt_R ]
};
key <LALT> { [ Control_L ] };
key <RALT> { [ Control_R ] };
};
(или что-то между ними), в зависимости от того, какой Alt вам нужен. И делайте каждый раз при запуске X (например, в файле ~/.xsession
, если он у вас есть):
mkdir -p .xkb/keymap
setxkbmap -print | sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' > $HOME/.xkb/keymap/custom
xkbcomp -w0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY
Вторая строка создает файл ~/.xkb/keymap
с xkb_символами { включать ". ..+локальный" };
, т.е. включающий ~/.xkb/символы/локальный
, когда xkbcomp
(третья строка) используется с опцией -I$HOME/.xkb
. Вы можете проверить этот файл перед запуском xkbcomp
.
Я не пробовал точно, но это основано на том, что я делаю: https://www.vinc17.net/unix/xkb.html (без директории types
).