Vim의 일반 텍스트 문서에 대한 글 머리 기호 목록


8

Vim은 목록에서 자동 들여 쓰기를 지원하지만 기본 설정은 다음과 같이 숫자로 시작하는 순서 목록 만 포함합니다.

1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
   tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
2. veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
   commodo consequat.

다음과 같이 순서가없는 글 머리 기호 목록으로 확장하는 방법을 알 수 없었습니다.

* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
* veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
  commodo consequat.

formatlistpatRegEx를 변경해도 원하는 결과가 나오지 않았습니다 (실제로 정렬 된 목록이 깨졌습니다).

답변:


10

값을 설정하려고 시도한 것을 아는 것이 도움이 되겠지만 백 슬래시를 올바르게 이스케이프하지 않은 것 같습니다.

기본값은

formatlistpat=^\s*\d\+[\]:.)}\t ]\s*

그러나 실제로 그 값을 설정하려면 (vimrc 또는 cmdline에서) 사용해야합니다

set formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*

이에 대해서는에서 설명 :help option-backslash합니다. 구분되고 정렬되지 않은 목록 formatlistpat으로 작업 할 수 있도록하는 간단한 수정 *은 다음과 같습니다.

set formatlistpat=^\\s*[0-9*]\\+[\\]:.)}\\t\ ]\\s*

실제로, 그것은 작동합니다-많은 감사합니다! 나는 모든 것을 올바르게 탈출했다고 생각했지만 (패턴의 복잡성을 줄 였음에도 불구하고) 분명히 틀렸다. 별표를 피했을 수도 있는데, 문제를 설명해 줄 것입니다.
AnC

2
도움말에서 설명했듯이 위해 []더 빨리 사용하는 것 [[:digits:]*]또는 [\d*]이 아닌[0-9*]
아 디트

을 사용 let하지 않고 따옴표 문제를 회피 할 수 있습니다. set예 : let &formatlistpat='^\s*\(\d\+[\]:.)}\t ]\|[*-][\t ]\)\s*'. (이에 대한 지원을 추가 *하고 -숫자뿐만 아니라, 글 머리 기호로.)
wjv

@ wjv 나는 당신의 해결책을 시도했고 그것은 별표가 아닌리스트를 위해 작동합니다. 이 문제를 일으킬 수있는 아이디어가 있습니까?
languitar

@wjv는 comments변수 내부의 * 로, 세 부분 주석의 중간 부분 임에도 불구하고 별표와 줄 주석을 혼동 할 수 있습니다.
languitar

3

jamessan이 작성한 내용 (특히 formatlistpat* 목록 작업에 대한 제안) 외에도 'c'옵션 (설명 형식)을 설정하지 않는 것이 중요합니다 formatoptions.

set formatoptions-=c

그렇지 않으면 Vim은 글 머리 기호 목록의 형식과 주석의 형식이 혼동됩니다. 두 번째 줄과 그 다음 줄에 여분의 *가 붙습니다.


뿐만 아니라 q로 주석을 지정할 때 (주석의 형식을 지정할 수 있음 gq) formatoptions플래그로 인해 문제가 발생할 수 있습니다 gq. +1
Kazark

1

a)인식 된 목록을 얻는 데 어려움이 있었 으므로 여기에 솔루션을 게시 할 것입니다.

" Recognise lists like 1), 1., a), a., and so on
" Note that | need to be escaped AND preceeded by a literal backslash
set formatlistpat=^\\s*\\([0-9]\\+\\\|[a-z]\\)[\\].:)}]\\s\\+

1

이 질문에 대한 여러 답변 과이 다른 질문 을 결합 하여이 작업을 수행 해야했기 때문에이 질문에 대한 새로운 답변을 작성하고 있습니다. 마지막 구성은 다음과 같습니다.

set formatlistpat=^\\s*[0-9*]\\+[\\]:.)}\\t\ ]\\s*
set formatoptions-=c
set comments-=mb:*
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.