[О блоге]
[наверх]
[пред]
[2022-07-17 10:49:14+03:00]
[355880e41d4bf3b49d5fd3fe49f245f5343840b1]
Темы: [tip][vim]
Вызов калькулятора в Vim
https://old.reddit.com/r/vim/comments/9421bm/whats_your_favourite_equalprg_hack/
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=dc/.dc
Пишу тут код, где нужно прикинуть всякие простые вычисления, типа
offset-ов, длин и тому подобного. В самом же коде я делаю наброски и
вычисления, но нужно и что-то посчитать. Не видя никаких статей, я
самостоятельно додумался до вызова калькулятора внешнего:
пишу на отдельной строке: 6 304 13 45 72 36 lSx 18 12+ 5*+p
выделяю ("V") и вызываю калькулятор ":!zc"
Это я всякие размеры полей пакета считал, строчка оставшаяся в истории
редактора. Про ссылку на reddit вспомнил просто потому что недавно,
когда что-то искал по Vim, напоролся на неё. Но из неё узнал что вместо
визуального выделения параграфа, можно делать "!}zc" -- куда короче и не
загрязняет "историю" визуальных выделений. Всё равно, даже в простых
вещах, Vim не перестаёт удивлять маленькими полезностями.
В качестве калькулятора уже который год использую обёртку над dc RPN
калькулятором (d65882c3c5decb9e2216d7a8de98c1d422c2c42d).
$ cat =zc
#!/bin/sh
exec rlwrap \
--history-filename /tmp/.dc_history \
--substitute-prompt "> " \
--prompt-colour=red \
dc -f ~/.dc -f /dev/stdin
Где ~/.dc содержит настройку точности и пока только пару скриптов:
* загруженный в "S" регистр суммирует всё что есть в стэке.
Это я использую постоянно, без надобности писать кучу "+"
* загруженный в "L" регистр вычисляет натуральный логарифм. А для
преобразования в другие основания применять формулу из школы, типа:
1000lLx 10lLx /p
Вызов zc у меня есть и в tmux по быстрому нажатию prefix+t+c, но когда
чисел много, и их надо брать из кучи других мест, то уже не
попереключаешься между сессиями tmux удобно.
[оставить комментарий]