vim를 좋은 편집기로 바꾸려면 몇 줄의 코드가 필요합니까?

12668 단어 shellvim
답은 당연히 상황을 보고 정하는 것이다.나는 내가 0을 말할 수 있기를 바란다.하지만 우리는 그 세상에서 살지 않는다.그래서 이것은 당신의 취향에 따라vim의 기능에 대해 얼마나 알고 있는지, 플러그인을 어떻게 사용할 계획인지에 달려 있다.한 무더기의 물건.하지만, 나는 가능한 한 너에게 숫자 하나 또는 몇 개를 줄 것이다.

Warning: this is entirely based on my own config and experience. Don't take this too seriously.



빠른 편집
만약vim를 사용하여 빠른 편집을 하고 싶다면, 설정 파일, 메시지 제출, 기본적으로 셸 EDITOR 변수를 사용하는 것들 중 하나일 수도 있습니다.난 이걸 선택할 거야.
" Don't include vi compatibility
set nocompatible

" Sensible backspace
set backspace=indent,eol,start

" Don't like temp files
set noswapfile 
set nobackup

" preserve state (undo, marks, etc) in non visible buffers
set hidden

" enable incremental search
set incsearch

" Disable search highlight
set nohlsearch

" ignore the case when the search pattern is all lowercase
set ignorecase
set smartcase

" mouse support
set mouse=a

" enable line numbers
set relativenumber

" Disable syntax highlight
syntax off

" Use spaces to indent
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab

" Disable line wrapping
set nowrap

" Set Leader key
let mapleader = "\<Space>"

" Write file
nnoremap <Leader>w :write<CR>

" Begin search & replace
nnoremap <Leader>r :%s///gc<Left><Left><Left><Left>
xnoremap <Leader>r :s///gc<Left><Left><Left><Left>

" Scroll half page and center
noremap <C-u> <C-u>M
noremap <C-d> <C-d>M
만약 당신이vim의 초보라면, 나는 너무 많은 세부 사항을 누설하지 않아서 매우 죄송합니다.나는 이 때문에 다시 한 편의 댓글을 올릴 것이다.나는 현재의 평론이 충분하기를 바란다.나도 너희들이 기억하길 바란다.
  • vim을 열면'정상 모드'에서 시작합니다.
  • i: 삽입 모드로 들어갑니다
  • Esc 또는Ctrl + c: 삽입 모드에서 정상 모드로 돌아갈 수 있습니다.
  • ZZ: 즉 shift + z + z정상적인 모드에서vim에서 벗어날 수 있다는 것이다.
  • :q:: + q + Enter정상적인 모드에서vim에서 벗어날 수 있습니다.
  • 이것은 실제로vim를 그렇게 귀찮게 하지 않게 하기에 충분하다.너는 syntax off에서 나와 겨루고 싶을 수도 있지만, 나는vim의 기본 문법 하이라이트를 정말 좋아하지 않는다.나는 차라리 그것을 끄고 싶다.
    어쨌든, 23줄의 코드가 생기면, 우리는 그렇게 짜증나지 않는vim가 생겼다.

    더 좋아지게 해주세요.
    현재,vim에서 더 많은 시간을 소비하고, 여러 파일을 편집하고 있는 것을 발견하면, 더 많은 기능을 사용해야 할 수도 있습니다.
    " Autosave when navigating between buffers
    set autowrite
    
    " Automatically re-read file if a change was detected outside of vim
    set autoread
    
    " Enable cursorline
    set cursorline
    
    " Better color support
    if (has("termguicolors"))
      set termguicolors
    endif
    
    " Enable syntax highlight
    syntax enable
    
    " When opening a window put it right or below the current one
    set splitright
    set splitbelow
    
    " Keep lines below cursor when scrolling
    set scrolloff=2
    set sidescrolloff=5
    
    우리는 34줄이 있습니다. (색 배열을 선택하면 35줄입니다.)현재vim는 더욱 다채로워 보이며'자연스럽게'균열을 열어줍니다.
    하지만 우리가 집에 있고 싶다면, 열쇠 그림이 더 필요하다.이것은 당신의 첫 번째 옵션입니다.vim에 대한 이해는 매우 큰 역할을 합니다.나는vimrc에 몇 개의 버튼 그림을 넣어서 편안하게 해야 합니까?this에 따르면 답은 29이다.이 파일을 기반으로 26줄 설정이 있으며 29줄은 키맵과 관련이 있습니다.전반적으로 말하자면, 우리는 55줄 코드를 하나의 체면치레로 삼은 경험이 있다.

    더 넓은 범위
    더 나아가, 만약 우리가 지금vim을 사용하여 여러 파일 사이를 내비게이션하고 변경을 한다면 어떻게 될 것인가.그래도 좀 어색하네.
    디렉터리를 탐색하기 위해서,vim에는 Netrw라는 내장 플러그인이 있습니다.지금, 이것은 세계에서 가장 좋은 일이 아니지만, 이것은 희망이 있다.만약 우리가 투자52-ish lines한다면 우리는 그것을 우리가 원하는 방식으로 운영할 수 있다(내가 말한'우리'는 나를 가리킨다).
    여러 파일에 대한 변경 사항을 일반적으로 "찾기 및 바꾸기"라고 부른다.며칠 전에 나는 플러그인이 있는 것과 없는 상황에서 어떻게 이 점을 할 수 있는지 확실히 알게 되었다.그것은 기본적으로 :vimgrep(또는 :grep)와 빠른 복구 창:cdo s/{your-query}/{the-replacement}/의 혼합이다.그리고 효과가 좋아요...필터:vimgrep의 결과가 필요할 때까지.빠른 복구 목록을 수정하려면 이 줄을 추가해야 합니다.
    set errorformat+=%f\|%l\ col\ %c\|%m
    
    이것은vim에게 자신의 빠른 복구 목록을 읽는 방법을 알려 줍니다.이 예에서 :vimgrep의 오류 형식은 약간 다르다.
    궁금한 분들께 제가 시범을 보여 드릴게요.이것은 플러그인이 없는 상황에서vim에서 '찾기, 필터, 바꾸기' 방식 (초장거리 경로) 이다.

    see in asciinema


    개인적으로 나는 플러그인을 사용해서 그것을 더욱 간단하게 만들었다.하지만 우리는 그것들을 뛰어넘어 자신의 핵심 지도를 만들 수 있습니다



    " Go to previous location
    nnoremap [q :cprev<CR>
    
    " Go to next location
    nnoremap ]q :cnext<CR>
    
    " Manage the quickfix window
    nnoremap <Leader>cc :cclose<CR>
    nnoremap <Leader>co :copen<CR>
    
    function! QuickfixMapping()
      " Go to next location and stay in the quickfix window
      nnoremap <buffer> K :cprev<CR>zz<C-w>w
    
      " Go to previous location and stay in the quickfix window
      nnoremap <buffer> J :cnext<CR>zz<C-w>w
    
      " Make the quickfix list modifiable 
      nnoremap <buffer> <leader>u :set modifiable<CR>
    
      " Update quickfix window
      nnoremap <buffer> <leader>w :cgetbuffer<CR>:cclose<CR>:copen<CR>
    endfunction
    
    augroup quickfix_mapping
        autocmd!
        " Setup keymaps
        autocmd filetype quickfix call QuickfixMapping()
    augroup END
    

    이것이 있으면 우리의 코드 줄 수는 125줄로 증가할 수 있습니다




    이제 예뻐지게 해주세요.


    가장 중요한 것은.좋은 배색 방안은 몇 줄이 될 수 있습니까?약 100명.만약 내가 현재 사용하고 있는 주제의 가장 기본적인 것만 남긴다면, 그것은 대략 108줄




    플러그인이 없는 총 개수


    230 여러 줄.그렇게 지도 모른다, 아마, 아마...만약 네가 평론을 덧붙인다면 더욱 많은 수확이 있을 것이다.날 못 믿어?다음은 내가 줄곧 구축하고 있는 것들: complete-rc.vim




    플러그인을 원하십니까?


    업무 중에 전업으로vim를 사용하고 싶을 수도 있으니까요.지금 일이 매우 까다롭게 변했다.지금 우리는 당신의 구체적인 업무 절차를 고려해야 합니다


    나 자신만을 위해 말할 수 있습니다.전업으로vim를 사용하기 위해vimrc에서 800여 줄 코드를 사용했습니다.30개의 플러그인을 사용하려면 약 28400줄이 필요합니다.흥미로운 것은 내가 큰 플러그인을 많이 사용하지 않았다는 것이다.LSP가 없고, 화려한 자동 보완이 없고, linter나formatters가 없습니다.그래서 만약 당신이 정말 필요하다면 줄 수가 더 높을 수 있습니다




    결론


    vim를 좋은 편집기로 만드는 데 몇 줄의 코드가 필요합니까


    나에게 있어서 대략 23에서 29200 사이이다.:grep, fzf, ripgrep 등 외부 도구를 잊지 마세요.단지 그것을 더욱 좋아지게 하기 위해서

    좋은 웹페이지 즐겨찾기