내 개발 환경 설정(2부)

15787 단어 vimnerdtreezsh
나는 다음과 같이 이야기했습니다.
  • 필수 도구 설치
  • zsh를 설치하고 기본적으로 사용함
  • Oh My Zsh 설치
  • vim 설치 및 개발에 좋은 옵션이 될 수 있는 이유

  • 파트 2 시간입니다.

    6. vim 구성



    vim을 배우고 익숙해지는 것이 어렵다는 것을 알지만 여기에 제 비밀이 있습니다 🤐.

    인터넷에서 vim 팁 및 구성에 대해 조사한 결과 다음을 찾았습니다. https://github.com/sohjiro/.vim

    예, vim을 설정하고 일부 스테로이드를 추가하는 쉘 스크립트입니다.

    다음 명령을 실행하십시오.

    curl -L https://raw.githubusercontent.com/sohjiro/.vim/master/run_config.sh | sh
    


    그게 다야 💪.

    6.1. vim에서 0x7A69 색상 오류 수정(선택 사항)



    이제 vim을 열어보십시오(물론 vim 명령으로).

    어떤 이유로 누락된 색상0x7A69에 대한 오류가 발생했습니다. 전에는 나에게 그런 일이 없었지만 당신에게도 그런 일이 일어난다면 여기에 해결책이 있습니다.

    여기에서 파일0x7A69_dark.vim을 다운로드하십시오.

    https://www.vim.org/scripts/script.php?script_id=4695

    그리고 다음을 수행하십시오.

    mkdir -p ~/.vim/colors
    
    # <path> is the path where the 0x7A69_dark.vim file is located
    mv <path>/0x7A69_dark.vim ~/.vim/colors
    
    


    다음에 vim을 열면 수정될 것입니다.

    6.2. vim에서 이상한 백스페이스 문자 수정(선택 사항)



    색상 오류를 해결한 후 키보드 테스트를 시작했고 백스페이스를 누를 때 항상 ^? 문자 😫가 표시되는 것을 발견했습니다.

    저게 뭐에요? 잘 모르겠지만 이 문제를 해결하는 방법은 파일.zshrc을 편집하고(Zsh를 사용하고 있다는 것을 기억하십시오. 맞습니까?) 맨 아래에 다음 줄을 추가합니다.

    stty erase '^?'
    


    해결 🔨.

    7. vim 플러그인 설치



    6단계에서 설치한 구성에는 일부 내장 플러그인이 있습니다.

    설치하려면 vim을 열고 다음을 입력하십시오.

    :PlugInstall
    


    모든 것이 설치될 때까지 기다리십시오.



    8. vim 마스터하기: NerdTree는 당신의 친구입니다.



    7단계에서 말씀드린 플러그인 중 하나는 NerdTree입니다. 이 플러그인을 사용하면 현재 디렉토리 열기, 파일 찾아보기, 파일 추가/이름 바꾸기/제거/이동/복사 등을 수행할 수 있습니다. 멋지지 않나요?.



    사용하려면 vim을 열고 다음을 입력하십시오.

    :NerdTreeToggle
    


    현재 디렉토리를 열어야 할 때마다... 다소 지루하지만 좋은 점은 명령을 키보드 조합에 매핑할 수 있다는 것입니다.

    파일~/.vim/vim_config.vim을 편집하고 다음 줄을 추가합니다.

    noremap <C-w>n :NERDTreeToggle<cr>
    


    vim을 다시 시작하고 이제 Ctrl-w + n를 누르면 됩니다. NerdTree를 닫으려면 조합을 다시 누르십시오.

    마지막으로 디렉터리나 파일에 대한 작업(이동, 복사, 삭제 등)을 수행하려면 NerdTree를 열고 커서를 원하는 디렉터리나 파일로 이동한 다음 m를 누릅니다.



    원하는 옵션을 선택하십시오.

    9. vim 마스터하기: 창 분할



    동시에 2개 이상의 파일을 열어야 하는 경우가 있으므로 창 분할이 도움이 됩니다.

    다시 파일~/.vim/vim_config.vim을 편집하고 다음 줄을 추가합니다.

    noremap <C-w>- :split<cr>
    noremap <C-w>\| :vsplit<cr>
    


    vim을 다시 시작하고 이제 Ctrl-w + -를 눌러 현재 창을 수평으로 분할합니다.



    그리고 Ctrl-w + |(파이프 문자)는 현재 창을 세로로 분할합니다.



    패널 사이를 전환하려면 Ctrl+ w를 두 번 누르십시오. 패널을 닫으려면 Ctrl-w + c 를 누르십시오.

    이제 NerdTree와 창 분할을 혼합하여 원하는 만큼 파일을 여세요!



    10. vim 마스터하기: 파일 버퍼 삭제



    Sublime Text, Visual Code 또는 IDE를 사용하면 어떤 파일 작업을 마쳤을 때 그냥 닫으면 됩니다. 글쎄, 이것은 vim에서 동일하지 않습니다. 패널을 닫을 수 있지만( Ctrl-w + c ) 버퍼는 여전히 존재합니다 😫. 다행히 현재 버퍼를 닫는 방법을 찾았습니다! 🤓
    ~/.vim/plugin/bclose.vim에 새 파일을 생성하고(플러그인 디렉토리가 존재하지 않는 경우 함께 생성하십시오) 다음을 붙여넣습니다(vim.wikia에 대한 크레딧):

    " Delete buffer while keeping window layout (don't close buffer's windows).
    " Version 2008-11-18 from http://vim.wikia.com/wiki/VimTip165
    if v:version < 700 || exists('loaded_bclose') || &cp
      finish
    endif
    let loaded_bclose = 1
    if !exists('bclose_multiple')
      let bclose_multiple = 1
    endif
    
    " Display an error message.
    function! s:Warn(msg)
      echohl ErrorMsg
      echomsg a:msg
      echohl NONE
    endfunction
    
    " Command ':Bclose' executes ':bd' to delete buffer in current window.
    " The window will show the alternate buffer (Ctrl-^) if it exists,
    " or the previous buffer (:bp), or a blank buffer if no previous.
    " Command ':Bclose!' is the same, but executes ':bd!' (discard changes).
    " An optional argument can specify which buffer to close (name or number).
    function! s:Bclose(bang, buffer)
      if empty(a:buffer)
        let btarget = bufnr('%')
      elseif a:buffer =~ '^\d\+$'
        let btarget = bufnr(str2nr(a:buffer))
      else
        let btarget = bufnr(a:buffer)
      endif
      if btarget < 0
        call s:Warn('No matching buffer for '.a:buffer)
        return
      endif
      if empty(a:bang) && getbufvar(btarget, '&modified')
        call s:Warn('No write since last change for buffer '.btarget.' (use :Bclose!)')
        return
      endif
      " Numbers of windows that view target buffer which we will delete.
      let wnums = filter(range(1, winnr('$')), 'winbufnr(v:val) == btarget')
      if !g:bclose_multiple && len(wnums) > 1
        call s:Warn('Buffer is in multiple windows (use ":let bclose_multiple=1")')
        return
      endif
      let wcurrent = winnr()
      for w in wnums
        execute w.'wincmd w'
        let prevbuf = bufnr('#')
        if prevbuf > 0 && buflisted(prevbuf) && prevbuf != w
          buffer #
        else
          bprevious
        endif
        if btarget == bufnr('%')
          " Numbers of listed buffers which are not the target to be deleted.
          let blisted = filter(range(1, bufnr('$')), 'buflisted(v:val) && v:val != btarget')
          " Listed, not target, and not displayed.
          let bhidden = filter(copy(blisted), 'bufwinnr(v:val) < 0')
          " Take the first buffer, if any (could be more intelligent).
          let bjump = (bhidden + blisted + [-1])[0]
          if bjump > 0
            execute 'buffer '.bjump
          else
            execute 'enew'.a:bang
          endif
        endif
      endfor
      execute 'bdelete'.a:bang.' '.btarget
      execute wcurrent.'wincmd w'
    endfunction
    command! -bang -complete=buffer -nargs=? Bclose call s:Bclose('<bang>', '<args>')
    nnoremap <silent> <Leader>bd :Bclose<CR>
    


    그런 다음 파일~/.vim/vim_config.vim을 편집하고 다음 줄을 추가합니다.

    noremap <C-w>b :Bclose<cr>
    


    vim을 다시 시작하고 아무 파일이나 엽니다.


    Ctrl-w + b를 누르면 짜잔!



    지금은 여기까지입니다.

    궁금한 점이 있으면 언제든지 문의하세요!

    읽어주셔서 감사합니다 ❤️

    좋은 웹페이지 즐겨찾기