我在init.vim中创建了一个函数,以获取视觉选择的文本并将其通过管道传递到bc
中以进行计算。
它现在可以正常工作,除非我尝试选择多行,否则它将失败:
(standard_in)1:非法字符:^ M
(standard_in)1:语法错误
我的目标是能够选择多行,例如
a=1
a+2
.+3
在vim中,按Ctrl+b
并返回我的函数
3
6
我已经在正在使用的文件上尝试过dos2unix
,所以文件没有问题。
这是我的init.vim中的函数:
function BC() range
let ans = system('echo scale=6\;'.shellescape(join(getline(a:firstline, a:lastline), "\r")).'| bc')
put =ans
endfunction
com -range=% -nargs=0 BC :<line1>,<line2>call BC()
vnoremap <C-b> :BC<CR>
nnoremap <C-b> <S-V>:BC<CR>
我的问题是选择多行时如何使我的功能正常工作?我可以解析所选文本并将^M
替换为\;
,如果可能的话。