我正在尝试使用以下语法的 fzf:
fzf \
--ansi \
--delimiter : \
--bind "f12:execute-silent:(code -g $PWD/{1..3})" \
--preview-window 'right:50%' \
--preview 'batcat --highlight-line={2} --line-range=$(({2}-10)):$(({2}+10)) --color=always {1}' | cut -d":" -f1,2,3
我想用batcat预览,但仅限于行:
--line-range=$(({2}-10)):$(({2}+10))
但是我在bat中遇到错误:“错误的数学表达式:非法字符:'
将 cut 命令中的 {2} 参数从“'”字符中剥离,以便可以评估行范围的正确方法是什么?
谢谢
最好使用
tr
命令删除单引号!
fzf \
--ansi \
--delimiter : \
--bind "f12:execute-silent:(code -g $PWD/{1..3})" \
--preview-window 'right:50%' \
--preview 'batcat --highlight-line={2} --line-range=$(($(echo {2} | tr -d "'")-10)):$(($(echo {2} | tr -d "'")+10)) --color=always {1}' | cut -d":" -f1,2,3