내 마크다운 파일에는 Python 코드 예제가 많이 있으며 >>>
기호로 시작해야 합니다.
그래서 나는 그 일을 수행하기 위해 vim 함수를 작성했습니다.
function AddShellPrompt() range
let lnum = a:firstline
while lnum <= a:lastline
let replaced_line = substitute(getline(lnum), '^\s\+', '&>>>', '')
call setline(lnum, replaced_line)
let lnum += 1
endwhile
endfunction
문제는 다음과 같은 원시 텍스트의 경우입니다.
pow(2, 3)
8
>>>
before 에만 추가하면 되지만 pow(2, 3)
before 에는 추가하면 안 됩니다 8
. 그래서 정규 표현식을 확장해야 합니다. 나는 문자가 포함된 줄만
추가하면 어떨까 생각했습니다 . (완벽하지는 않지만) 꽤 좋은 결과를 얻을 수 있습니다.>>>
+-*/%(=
하지만 문제는 정규 표현식(특히 vim에서)을 작성하여 표현하는 방법입니다.주어진 세트의 일부 문자가 현재 줄에 이미 나타납니까?
답변1
vim
정규식 엔진 지원대괄호 표현, 대괄호로 묶인 문자 시퀀스로 문자 클래스를 정의할 수 있습니다 [...]
.
/[+\-*/%(=]/
-
이 문자 중 하나와 일치합니다( 문자 그대로 일치시키려면 문자 사이의 범위를 정의하는 escape 가 필요합니다 ).
현재 줄에 문자 집합이 포함되어 있는지 확인하려면 다음을 수행하세요.
if getline(".") =~ '[+\-*/%(=]'
echo "Match"
endif