%EC%97%90%EC%84%9C%20%22%EB%8B%A4%EC%9D%8C%20%EC%95%8C%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EC%88%98%EC%9D%98%20%EB%AC%B8%EC%9E%90%EC%97%90%20%EC%A7%80%EC%A0%95%EB%90%9C%20%EA%B8%B0%ED%98%B8%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4%22%EB%A5%BC%20%ED%91%9C%ED%98%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
내 마크다운 파일에는 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