vim의 상태 표시 줄에있는 항목의 위치 고정하기


4

내 상태 표시 줄은 다음과 같습니다.

set statusline+=%m
set statusline+=b%n:
" set statusline+=%f
set statusline+=%F
set statusline+=%R
set statusline+=%Y
set statusline+=\ 
set statusline+=[
set statusline+=row\ %l/%L
set statusline+=,\ 
" set statusline+=column\ %c\ (%v)

set statusline+=column\ %v\ (%c)
set statusline+=]

평균적인 날에는 구름이 없을 때 이렇게됩니다.

[-]b3:options.txt,RO,HELP [row 6291/7778, column 42 (29)]

이제 창을 나누고 서로 다른 파일을 열면 수정 된 파일 중 일부는 수정되었습니다. 상태 표시 줄의 내용이 앞뒤로 흔들 리기 시작하고 끝까지 나를 귀찮게합니다.

나는 정력의 도움을 보았다. : 도움말 '상태 표시 줄 ) 일부 항목의 고정 너비를 설정할 수 있습니다.

한 가지 항목이 누락되거나 너비의 문제가 없다면 다른 항목에 영향을 미치지 않는 방식으로 위의 항목을 수정하는 방법은 무엇입니까? (즉, 항상 내가 알고있는 위치를보고 거기에있는 것을 알 수 있습니다 ... 내 눈을 왼쪽이나 오른쪽으로 움직여서 필요한 것을 검색하지 않습니다).


1
미안하지만 이태리어가 내 눈을 다쳤어!
Ivo Flipse

어째서? 어쩌면 우리는 머리를 이탤릭으로 조정하기 위해 맥주를 마셔야합니다. :)
akira

@Ivo Flipse, @akira - 나는 여기에있는 사람들의 거의 강박적인 필요성을 이해하지 못할 것이다. 다른 모든 것들처럼 , 그렇습니다 (아무런 변화도 없지만). 나는 상관하지 않습니다. 지옥, 나는 상관 없지만, 여전히 심리적 관점에서 보면 흥미 롭습니다.
Rook

@ 아이보 (Ivo) - 또한, "시체에서 10자를 지웠다"고 말했어 ... 나는 그걸 볼 수 없다. 무엇을 삭제 했습니까?
Rook

@Idigas : 10 개의 문자는 Italic으로 만드는 *입니다. 나는 마크 업에 대해 강박적이다. 질문 자체에 대한 불만 없음
Ivo Flipse

답변:


6

% = 왼쪽 및 오른쪽 정렬을 나눌 수 있습니다.

내 상태 표시 줄에서 현재 git 브랜치를 왼쪽 정렬로 사용하고 파일 정보를 오른쪽 정렬로 사용합니다. 사용 가능한 정보가 없더라도 그 밖의 모든 정보는 올바르게 표시됩니다.

편집하다 : 나는 다른 방법으로 작업하는 데 어려움을 겪었 기 때문에이 방법으로 항목을 수정하기 위해 % =를 사용한다고 말해야합니다. 다음을 사용하여 최소 너비를 설정할 수 있습니다. % -10.f (일부 항목 f의 최소 너비는 10입니다).

2 편집 : 아래 Idigas의 의견에 대답하십시오. 다음은 현재 상태 표시 줄 (공간에 맞게 다시 포맷 됨)입니다.

set statusline=%mb:%n\ %f%R%Y\ [row\ %l/%L,\ column\ %v\ (%c)]

나는 그것을 다음과 같이 바꿀 것이다 :

set statusline=b:%n\ %f%R%Y%=%m[row\ %l/%L,\ column\ %v\ (%c)]

왼쪽 / 오른쪽 분할을 % = 수정 된 %엠 그 이후에는 상태 표시 줄 위치가 고정 된 것처럼 보입니다.


처음 몇 필드의 위치를 ​​고정하는 것에 대한 예제를 제공 할 수 있습니까? 가끔은 vimscript의 구문을 이해하는 데 어려움을 겪습니다. 그리고 이것은 그 시대의 하나입니다;
Rook

안녕하세요 Idigas, 나는 주위에 뛰어 다니지 않는 것 같은 상태 표시 줄 설정을 보여주는 대답을 편집했습니다. 최소 너비 수정자를 가지고 있어도 운이 없었으므로 대신 상태 표시 줄을 분할했습니다.
redacted

그래, 나는 그럭저럭 나 자신을 할 수 있었다. Unfortunatelly, 내가 위에 준 것은 단지 예입니다. (그러나 그럼에도 불구하고, 노력에 감사드립니다 (적어도 +1). 최대 / 최소 필드를 사용하는 방법에 대한 대답이 아무도 나오지 않으면, 나는 받아 들일 것입니다. 너의 대답. 적어도 내가 할 수있어.
Rook

@Idigas - 더 도움이되지 못해 미안해! 이 문제를 완전히 해결할 수있는 유일한 방법은 동적 파트를 예상 답변이나 길이가 공백 인 문자열 (예 : 파일 수정 여부에 따라 [+] 또는 "")을 반환하는 함수로 대체하는 것입니다.
redacted
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.