vim에서 더 유용한 상태 표시 줄? [닫은]


150

vim의 상태 표시 줄을보다 유익하고 흥미롭게 만들고 싶습니다.이를 위해서는 몇 가지 아이디어가 필요합니다. 상태 표시 줄을 어떻게 사용자 정의 했습니까?


5
@paxdiablo : 때로는 툴을 필요에 맞게 구성하는 데 시간을 투자하여 툴을 더 잘 활용할 수 있으므로 작업하는 동안 시간을 ​​절약 할 수 있습니다.
DarkDust

10
정답이 없으므로 커뮤니티 위키 여야합니다.
랜디 모리스

3
이것은 더 많이 배운 사람들의 경험과 전문 지식을 활용하는 것만 큼 의견에 관한 것이 아닙니다. 질문자는 자신이 추측 할 수없는 정보를 찾고 있으며 개인이 최선의 것에 대해 경쟁하도록 요구하지 않습니다. 대답은 이전에는 없었던 많은 옵션을 생성합니다. 질문에 둘 이상의 답변이 있다고해서 기술 전문 지식 기반의 질문이 아니라는 의미는 아닙니다. 이 질문은 SO 형식에 잘 맞으며 열려 있어야합니다.
NeilG

답변:


134

편집하다:-

참고 VIM-항공사는 전력선과 같은 새로운 vim 스크립트 옵션이 사라 파이썬을 가지고 일부 견인을 얻고있다.


전력선 은 요즘 어디에있는 것 같습니다 :-

정상 상태 라인

전력선

다른 플러그인에 대한 맞춤형 상태 표시 줄 (예 : ctrlp )

전력선


3
@Gavin 전력선 세그먼트로 어떻게 변경할 수 있습니까? 기본 세그먼트 수정 스크립트를 업데이트 할 수 있습니까? 건배
Jerry Gao

@Gavin I도 vim-powerline에 브랜치와 같은 것들을 어떻게 포함 시켰는지 알려 주시면 감사하겠습니다
Eric Hu

1
github.com/Lokaltog/vim-powerline#troubleshooting 에서 특별한 작업을 수행하지 않은 경우 vimrc 파일에 "let g : Powerline_symbols = 'fancy'"가 있고 패치 된 글꼴이 설치되어 있는지 확인하십시오.
Gavin Gilmour

이것은 좋은 플러그인입니다. 그러나 파일을 처음 열 때 스크롤 성능이 매우 좋지 않습니다.
Ahmed Aeon Axan

2
@AhmedAeonAxan 항공사를 시도해보십시오 (빠른 vimscript). 특히 Vundle 또는 Pathogen으로 설정하는 데 드는 노력이 줄어 듭니다. 전력선 글꼴을 설치하면 항공사와 거의 비슷하게 보입니다. github.com/Lokaltog/powerline-fonts
눈에

60

내 꺼야 :

set statusline=
set statusline +=%1*\ %n\ %*            "buffer number
set statusline +=%5*%{&ff}%*            "file format
set statusline +=%3*%y%*                "file type
set statusline +=%4*\ %<%F%*            "full path
set statusline +=%2*%m%*                "modified flag
set statusline +=%1*%=%5l%*             "current line
set statusline +=%2*/%L%*               "total lines
set statusline +=%1*%4v\ %*             "virtual column number
set statusline +=%2*0x%04B\ %*          "character under cursor

vim 상태 표시 줄

그리고 내가 사용한 색상은 다음과 같습니다.

hi User1 guifg=#eea040 guibg=#222222
hi User2 guifg=#dd3333 guibg=#222222
hi User3 guifg=#ff66ff guibg=#222222
hi User4 guifg=#a0ee40 guibg=#222222
hi User5 guifg=#eeee40 guibg=#222222

1
c는 vim 도움말에서 열 개수라고도하더라도 실제로는 바이트 수입니다. v를 사용하여 일반적으로 열 번호가 의미하는 것을 얻을 수 있습니다.
Ludwig Weinzierl

감사합니다 @Ludwig, 나는 그것을 눈치 채지 못했습니다. 답을 편집하겠습니다.
Tassos

8
나는 추가 된 각 값을 자체 줄에 주석 처리하는 선명도를 좋아합니다. 7 년 전에 그 일을 해냈다면, 마지막 클린 OS 설치를 할 때 버리지 않았을 것입니다.
Bruno Bronosky

!! 나는이 사용없는 한 가지가 splited 세션을 구분하는 라인
훌리오 마린

1
@trusktr guifgguibg입니다 gvim. 당신이 실행하는 경우 vim터미널에서 시도 ctermfg하고 ctermbg대신. vim에서 활성화 한 색상 수에 따라 숫자 1-16 또는 1-256의 다른 색상이 필요합니다. 각 숫자에 해당하는 색상 .
joelostblom

46

이것은 내가 사용하는 것입니다 :

set statusline=
set statusline+=%7*\[%n]                                  "buffernr
set statusline+=%1*\ %<%F\                                "File+path
set statusline+=%2*\ %y\                                  "FileType
set statusline+=%3*\ %{''.(&fenc!=''?&fenc:&enc).''}      "Encoding
set statusline+=%3*\ %{(&bomb?\",BOM\":\"\")}\            "Encoding2
set statusline+=%4*\ %{&ff}\                              "FileFormat (dos/unix..) 
set statusline+=%5*\ %{&spelllang}\%{HighlightSearch()}\  "Spellanguage & Highlight on?
set statusline+=%8*\ %=\ row:%l/%L\ (%03p%%)\             "Rownumber/total (%)
set statusline+=%9*\ col:%03c\                            "Colnr
set statusline+=%0*\ \ %m%r%w\ %P\ \                      "Modified? Readonly? Top/bot.

에 강조? 함수:

function! HighlightSearch()
  if &hls
    return 'H'
  else
    return ''
  endif
endfunction

색상 (ligh2011.vim에서 적응) :

hi User1 guifg=#ffdad8  guibg=#880c0e
hi User2 guifg=#000000  guibg=#F4905C
hi User3 guifg=#292b00  guibg=#f4f597
hi User4 guifg=#112605  guibg=#aefe7B
hi User5 guifg=#051d00  guibg=#7dcc7d
hi User7 guifg=#ffffff  guibg=#880c0e gui=bold
hi User8 guifg=#ffffff  guibg=#5b7fbb
hi User9 guifg=#ffffff  guibg=#810085
hi User0 guifg=#ffffff  guibg=#094afe

내 StatusLine


2
니스, 이것은 나의 유스 케이스, 눈 사탕을 위해 멋진 상태 라인 플러그인을 최소한 가질 필요를 피합니다 :)
Nishant

1
색상이 어떻게 작동합니까?
trusktr

어떤 colorscheme설정을 한 후에 이것을 넣으려고했지만 이중 톤 상태 표시 줄이 나타납니다.
trusktr

@trusktr, 설명하기 쉽지 않습니다 .... vimrc 파일에 처음 두 블록을 넣고 현재 colorscheme 파일에 색상 블록을 넣어야합니다. 이 명령으로 현재 colorscheme 파일을 찾을 수 있습니다.:colorscheme
Reman

1
귀하의 하이라이트 검색 그냥 이런 식으로 삼항 연산자를 사용하여 (어떤 기능이없는) 짧은 것 -> echo &hls ? 'H' : '' 내 경우 :let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
SergioAraujo

20

내가 찾은 것은 현재 어떤 복사 / 붙여 넣기 버퍼 (레지스터)가 활성화되어 있는지 아는 것입니다 %{v:register}. 그렇지 않으면 전체 상태 표시 줄이 표준 표시 줄과 거의 똑같습니다.

:set statusline=%<%f\ %h%m%r\ %y%=%{v:register}\ %-14.(%l,%c%V%)\ %P

2
v:register정말 , 정말 유용합니다!
nperson325681

레지스터가 활성화되었다는 것은 무엇을 의미합니까? 레지스터에 대한 나의 (나쁜) 이해는 기본적으로 텍스트를 저장하는 클립 보드라는 것입니다.
Roymunson

15

몇 배 더 적을수록 코딩 할 때 파일을 통해 백분율을 알아야합니까? 파일 형식은 어떻습니까?

set statusline=%F%m%r%h%w\ 
set statusline+=%{fugitive#statusline()}\    
set statusline+=[%{strlen(&fenc)?&fenc:&enc}]
set statusline+=\ [line\ %l\/%L]          
set statusline+=%{rvm#statusline()}       

상태 표시 줄

상태 표시 줄

또한 코드에서 방해받지 않기 위해 최소한의 색상을 선호합니다.

https://github.com/krisleech/vimfiles 에서 가져옴

참고 : rvm#statuslineRuby와 fugitive#statuslinegit에 고유합니다.


1
자식 관련 상태 표시 줄에 +1
Patrick


1

set statusline=%<%f%m\ \[%{&ff}:%{&fenc}:%Y]\ %{getcwd()}\ \ \[%{strftime('%Y/%b/%d\ %a\ %I:%M\ %p')}\]\ %=\ Line:%l\/%L\ Column:%c%V\ %P

이건 내 꺼야 제안으로 줘

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.