Neovim 소개 - 사고의 속도를 편집하라는 요청 -

16476 단어 neovimVim

개요



Neovim 설정 방법, 오류와의 싸움을 주로 기록하고 있습니다.
그리고 그냥 지금 분투 중입니다.

neovim에게 손을 내밀은 이유
* atom 너무 무거운
* 서적 「실천 Vim 사고의 스피드로 편집하자!」의 타이틀에 끌려,
* 우선은 고리 고리로 현대적인 환경을 정돈하는 곳부터 시작한다

우선 URL 붙일 때입니다.
실천 Vim 생각의 속도로 편집하자! (amazon)

도입 환경



2018/4/6 현재
  • OS macOS Sierra 10.12.6
  • neovim 0.2.2

  • 현재 상태



    설정 파일은 이쪽 htps : // 기주 b. 코 m / 켄지 타지마 / 네오 ぃ m

    잘 된 일



    dein.vim 도입



    이곳은 어둠의 힘을 담은 플러그인을 관리하는 플러그인이 된다.
    설치하려면 GitHub의 README를 참조하여 다음 단계를 수행합니다.
    URL: Shougo/dein.vim

    절차를 나타냅니다.

    다음 명령은 터미널에서 실행됩니다.


    
    $ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
    $ sh ./installer.sh {specify the installation directory}
    

    주의 : 두 번째 줄의 "{}"도 경로 이름에 포함됩니다. (자신은 한 번 걸렸다.)

    installer.sh 실행시에 나온 문자열을 설정 파일(init.vim)에 추가한다.



    toml 파일에서 플러그인을 관리하기 위해 init.vim에서 파일을 지정합니다.


    
    " dein.toml, dein_layz.tomlファイルのディレクトリをセット
      let s:toml_dir = expand('~/.config/nvim')
    " 起動時に読み込むプラグイン群
      call dein#load_toml(s:toml_dir . '/dein.toml', {'lazy': 0})
    " 遅延読み込みしたいプラグイン群
      call dein#load_toml(s:toml_dir . '/dein_lazy.toml', {'lazy': 1})
    

     참고 dein.vim에서 플러그인 관리를 시작하는 방법 (Qiita)

    외형을 현대화



    도입한 플러그인
  • 테마 joshdick/onedark.vim
  • 테마 mhartington/oceanic-next
  • status/tabline vim-airline/vim-airline
  • statusline powerline/powerline

  • theme 설정 (init.vim에 설명)
    
    colorscheme onedark
    let g:airline_theme='oceanicnext'
    

    다음 설정
    
    " パワーラインでかっこよく
    "let g:airline_powerline_fonts = 1 設定すると文字化けを起こす。
    " カラーテーマ指定してかっこよく
    "let g:airline_theme = 'badwolf'
    " タブバーをかっこよく
    let g:airline#extensions#tabline#enabled = 1
    " 選択行列の表示をカスタム(デフォルトだと長くて横幅を圧迫するので最小限に)
    let g:airline_section_z = airline#section#create(['windowswap', '%3p%% ', 'linenr', ':%3v'])
    " virtulenvを認識しているか確認用に、現在activateされているvirtualenvを表示(vim-virtualenvの拡張)
    let g:airline#extensions#virtualenv#enabled = 1
    " gitのHEADから変更した行の+-を非表示(vim-gitgutterの拡張)
    let g:airline#extensions#hunks#enabled = 0
    " Lintツールによるエラー、警告を表示(ALEの拡張)
    let g:airline#extensions#ale#enabled = 1
    let g:airline#extensions#ale#error_symbol = 'E:'
    let g:airline#extensions#ale#warning_symbol = 'W:'
    

    참고원은 잊었습니다. <(_ _)>

    QuickRun 도입



    vin 없이 컴파일, 실행을 할 수 있게 됩니다.

    toml에 작성하고 설치.


    
    [[plugins]]
    repo = 'thinca/vim-quickrun'
    

    파이썬 주변에서 오류가 발생했기 때문에 해결하십시오.
    참고 Neovim의 CheckHealth에서 Python 연합 주변에서 경고가 발생하는 경우 (Qiita)
    그래도 오류
    Failed to load python host. ...
    

    그리고 나왔기 때문에
    let g:python_host_prog=$PYENV_ROOT.'/versions/neovim-2/bin/python'
    


    let g:python_host_prog=$PYENV_ROOT.'/versions/neovim-2/bin/python2.7'
    

    로 변경한 곳 해결.

    vimproc을 이용한 비동기 처리



    참고는 동상 vim-quickrun 간단하고 깔끔하게 사용할 수있는 설정 (Qiita)

    우선 vimproc 설치
    (dein.toml)에 다음과 같이 기술한다.
    
    [[plugins]]
    repo = 'Shougo/vimproc.vim'
    build = 'make'
    

    그런 다음 QuickRun 설정
    다음과 같이 (init.vim)에 기술한다.
    
    let g:quickrun_config = get(g:, 'quickrun_config', {})
    let g:quickrun_config._ = {
          \ 'runner'    : 'vimproc',
          \ 'runner/vimproc/updatetime' : 60,
          \ 'outputter' : 'error',
          \ 'outputter/error/success' : 'buffer',
          \ 'outputter/error/error'   : 'quickfix',
          \ 'outputter/buffer/split'  : ':rightbelow 8sp',
          \ 'outputter/buffer/close_on_empty' : 1,
          \ }
    

    결과
    다음과 같은 오류가 발생합니다.
    [vimproc] vimproc's DLL: "/Users/local/.cache/dein/repos/github.com/Shougo/vimproc.vim/lib/vimproc_mac.so" is not found.  Please read :help vimproc and make it.
    Error detected while processing function quickrun#command[10]..quickrun#run[10]..303[10]..395:
    line    1:
    E117: Unknown function: vimproc#pgroup_open
    E15: Invalid expression: vimproc#pgroup_open(join(a:commands, ' && '))
    

    그래서 GitHub Shougo/vimproc.vim를 들여다 보면 make 명령을 실행해야 할 것 같아서 설치 한 디렉토리로 이동하여 명령을 실행하면 해결할 수있었습니다.

    아직 작동하지 않는 것



    QuickRun 관련



    <C-c>로 강제 종료시킨다.



    참고 vim-quickrun 간단하고 깔끔하게 사용할 수있는 설정 (Qiita)

    조사하면 다음과 같이 init.vim에 기술하면 좋아하는 타이밍으로 종료 할 수있는 것 같습니다.
    
    nnoremap <expr><silent> <C-c> quickrun#is_running() ? quickrun#sweep_sessions() : "\<C-c>"
    

    그러나 다음과 같이 표시되는 경우에만
    
    Type  :quit<Enter>  to exit Nvim
    

    바로 가기 키를 변경하면 그냥 반응하지 않게 되었고, 다른 명령을 할당하면 제대로 반응한다.
    원인 알 수 없습니다.

    아직 시도하지 않은 것



    다음 플러그인은 아직 엉망이 아닙니다.
  • deoplate
  • denite
  • neosnippet
  • vim-fugitive
  • vim-gitgutter

  • 기타



    vimrc에 설명한 설정을 이식했습니다.
    
    " setting
    "文字コードをUFT-8に設定
    set fenc=utf-8
    " バックアップファイルを作らない
    set nobackup
    " スワップファイルを作らない
    set noswapfile
    " 編集中のファイルが変更されたら自動で読み直す
    set autoread
    " バッファが編集中でもその他のファイルを開けるように
    set hidden
    " 入力中のコマンドをステータスに表示する
    set showcmd
    " シンタックスハイライト
    syntax enable
    " Y を、行末までのヤンクにする
    nnoremap Y y$
    " displayオプション
    set display=lastline
    " 補完メニューの高さ
    set pumheight=10
    " 括弧を入力した時に、対応する括弧に一瞬カーソル飛ぶ
    set showmatch
    set matchtime=1
    " インクリメント、デクリメントへのマッピング
    nnoremap + <C-a>
    nnoremap - <C-x>
    " 不可視文字を表示
    set clipboard+=unnamed
    set clipboard=unnamed
    " 括弧補完
    inoremap { {}<LEFT>
    inoremap ( ()<LEFT>
    inoremap < <><LEFT>
    inoremap " ""<LEFT>
    inoremap ' ''<LEFT>
    inoremap [ []<LEFT>
    
    
    
    
    
    " 見た目系
    " タイトルを表示
    set title
    " 行番号を表示
    set number
    " 現在の行を強調表示
    set cursorline
    " 現在の行を強調表示(縦)
    "set cursorcolumn
    " 行末の1文字先までカーソルを移動できるように
    set virtualedit=onemore
    " インデントはスマートインデント
    set smartindent
    " ビープ音を可視化
    set visualbell
    " 括弧入力時の対応する括弧を表示
    set showmatch
    " ステータスラインを常に表示
    set laststatus=2
    " コマンドラインの補完
    set wildmode=list:longest
    " 折り返し時に表示行単位での移動できるようにする
    nnoremap j gj
    nnoremap k gk
    
    
    " Tab系
    " 不可視文字を可視化(タブが「▸-」と表示される)
    set list listchars=tab:\▸\-
    " Tab文字を半角スペースにする
    set expandtab
    " 行頭以外のTab文字の表示幅(スペースいくつ分)
    set tabstop=4
    " 行頭でのTab文字の表示幅
    set shiftwidth=4
    
    
    " 検索系
    " 検索文字列が小文字の場合は大文字小文字を区別なく検索する
    set ignorecase
    " 検索文字列に大文字が含まれている場合は区別して検索する
    set smartcase
    " 検索文字列入力時に順次対象文字列にヒットさせる
    set incsearch
    " 検索時に最後まで行ったら最初に戻る
    set wrapscan
    " 検索語をハイライト表示
    set hlsearch
    " ESC連打でハイライト解除
    nmap <Esc><Esc> :nohlsearch<CR><Esc>
    

    좋은 웹페이지 즐겨찾기