Skip to content

vim Setup

foolmacky edited this page Sep 9, 2021 · 19 revisions

■vimを使う難しさ

vimはそれぞれの用途と好みに合わせてカストマイズして使うことが大前提のエディタ
ただ、そのカストマイズについて構造的に解説してくれているドキュメントが殆どないのが、初心者にとって辛い
単にTIPSの集積となってしまっていて、どうアプローチし、どの部分をどのやり方でカストマイズすべきなのか、構造的に説明した文章が無いので、モヤモヤした状態のままに妥協して使っている感じになっている

■カストマイズの方向性

  • カストマイズは.vimrcで行う
  • vimエディター自体の画面の設定、option設定を「:set」記述で行う
  • エディターのキーアサインの変更、設定を「nnormap」「onormap」記述で行う
  • 表示職の設定、カーソルの色設定などを記述
  • plugin管理ツールの設定をし、.vimrcファイルに読み込むべきpluginの設定を記述
  • 開発者として必要なLanguageServer、及びそのclientの設定を記述
  • 開発をサポートするpluginのカストマイズ設定の追加

■cui版vimをmac上でアプリのように起動する

on run{input}
    if input is {} then
        set cmd to "vim"
    else
        set the_path to POSIX path of input
        set cmd to "vim " & quoted form of the_path
    end if

    tell application "iTerm"
        activate
        create window with profile "Vim Launcher Profile" command cmd
    end tell
end run
  • この設定でvimを起動する場合、govimなどのように起動時に非同期でディレクトリを走査するようなPluginが設定されていると、なぜか非同期に実行されるのではなくて、起動時の初期化が終了するまで、待たされることがわかった。
  • 普通にiTermを起動して、その中から実行するときには問題ないのだが。。。

■vim setup

https://www.vim.org/
sourceから最新版をmake , sudo make installで入れる
詳細はREADMEdoc/* src/INSTALL を参照のこと
cui版でありながら、普通にマウスも使える。gvimはいらないかもしれない。
macでcompileする際には make, make test, sudo make installで入れるが、make testでエラーが出るかもしれない

glibtool: command not found

glibtoolはhomebrewを使っていれるのが楽だ。vimのINSTALL.macにstack-overflowで検索しろ、と書いてあるのは笑った

glibtool is "GNU Libtool". It is typically installed as libtool on most systems, 
but because macOS has its own libtool that has completely different functionality, 
it is usually installed as glibtool on macOS.

If you can't directly use homebrew to install it, 
you can duplicate the steps in its recipe, 
which you can find here: https://github.com/Homebrew/homebrew-core/blob/master/Formula/libtool.rb

For the sake of keeping this answer "working" even if homebrew goes away, 
the homepage for libtool is https://www.gnu.org/software/libtool/ 
and you can follow the instructions there for information on how to build and install it.
brew install libtool

vim-plug

vim ver.8からは標準のplugin機能が、実装されたものの、多くのプラグインがこれを使うので、入れる

jelly beans

https://www.vim.org/scripts/script.php?script_id=2555 一部の設定は上書きする

vim-lsp

vimのlangage server client
https://github.com/prabirshrestha/vim-lsp

go-pls

vimのgolang langage server
GO111MODULE=on go get golang.org/x/tools/gopls@latest
https://github.com/golang/tools/blob/master/gopls/README.md

  • goplsにはPATHを通していないと起動できないので、shellの設定に入れる

govim(not vim-go)

vimのlanguage server clientを使ってgolangをハンドリングするplugin
https://github.com/govim/govim
:cw でエラー内容などがconsole windowに表示される。エラーが解消すると、メッセージは消える。
オムニ補完を起動するにはc-x,c-oを打鍵する必要がある。
オムニ補完モードに入ると、自動的にトップにウインドウが開くが、これをしない方法はないのか?

言語ごとに、その言語をハンドリングするpluginと、言語ごとのlanguage serverが必要になる
プログラムソースを編集開始する前には、今回のソースのlanguage serverに着替えてから編集を開始する(当然か?)
なぜかgovimを設定すると、vimの起動時の動作が非常に遅くなる現象が発生した。雰囲気的にはライブラリが読み込まれるのを待っている印象
しばらくそのままの状態で放置していたら、何故か改善された。何かローカルでコンパイルしていたのか?

■Go Debugg suppoort

delve

https://github.com/derekparker/delve
go getでintallbr> xcodeのコマンドラインは、すでにx-codeをインストール済みのため、すでにインストールされているとエラーになる

vim-delve

https://github.com/sebdah/vim-delve
https://note.com/miyazi777/n/nb2f520f91ed6

■vim & mouse

vim側でmouseを使えるようにしてしまうと、vim上では、iTerm2のselection -> clippboardとかの制御が、きかなくなる
mac上では下に書いたclipboard設定をすることで、yancからc+vでブラウザの画面などに貼り付けられる

■日本語

入力ソース設定onVim

  • ESCをおしたら日本語入力を切る
    この設定は.vimrcではなく、Google日本語入力の設定でおこなう
    「キー設定の選択」の「カスタム」ボタンを押し、リストの最後に設定を追加する。
    設定内容は「入力文字なし」「Escape」「キャンセル後IMEを無効化」
    ただし、「Ctrl + [」でのエスケープは動作しない。また、キー設定で「Ctrl + [」を入れようとするとEscapeになってしまうので設定できない
    と思ったら、HappyHackingだとキー設定できるみたいだ。。でも実際に設定しても、動作してないっぽい。。
    この設定をすると、タスクバーの表示が日本語のまま、入力は英数になったりする。表示の制御がちゃんとできていない
  • 日本語をONにしたらinsert modeにする: これはまだ手段が見つかっていない
  • https://www.soum.co.jp/misc/vim-no-susume/12/

■vim & clipboard

:set clipboard=unnamed
で、pがシステムのクリップボードから貼り付ける形に設定変更した
yはシステムのクリップボードにyancするようになる

■Multi画面の操作コマンド

  • cursorの画面移動 左画面へ:<C-w>h 同様に j, k, l
  • 画面自体を移動する 縦分割して左に:<C-w>H 同様に J, K, L

Clone this wiki locally