Я создал функцию в моем 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
на \;
, если это возможно.