-
Notifications
You must be signed in to change notification settings - Fork 0
vim Setup
vimはそれぞれの用途と好みに合わせてカストマイズして使うことが大前提のエディタ
ただ、そのカストマイズについて構造的に解説してくれているドキュメントが殆どないのが、初心者にとって辛い
単にTIPSの集積となってしまっていて、どうアプローチし、どの部分をどのやり方でカストマイズすべきなのか、構造的に説明した文章が無いので、モヤモヤした状態のままに妥協して使っている感じになっている
- カストマイズは.vimrcで行う
- vimエディター自体の画面の設定、option設定を「:set」記述で行う
- エディターのキーアサインの変更、設定を「nnormap」「onormap」記述で行う
- 表示職の設定、カーソルの色設定などを記述
- plugin管理ツールの設定をし、.vimrcファイルに読み込むべきpluginの設定を記述
- 開発者として必要なLanguageServer、及びそのclientの設定を記述
- 開発をサポートするpluginのカストマイズ設定の追加
-
https://qiita.com/evistream/items/fbda12bbc1742dcb3bdb
- apple-scriptとして設定し、アイコンも設定(アイコンは画像自体を開いてコピー&情報を表示でアイコンを選択して貼り付け)
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を起動して、その中から実行するときには問題ないのだが。。。
https://www.vim.org/
sourceから最新版をmake , sudo make installで入れる
詳細はREADMEdir/* src/INSTALL src/INSTALLmac.txt を参照のこと
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 ver.8からは標準のplugin機能が、実装されたものの、多くのプラグインがこれを使うので、入れる
https://www.vim.org/scripts/script.php?script_id=2555 一部の設定は上書きする
vimのlangage server client
https://github.com/prabirshrestha/vim-lsp
多分lspはlanguage server protocolの略で、golangのlanguage serverの名前がgo-plsだったり、pとlとsがやたら出るので混乱してしまう
- https://budougumi0617.github.io/2020/07/24/make_vimrc_with_lsp/
- https://qiita.com/kitagry/items/216c2cf0066ff046d200
- https://kitagry.github.io/blog/programmings/2020/10/vim-golang-dev/
- https://mattn.kaoriya.net/software/vim/20200106103137.htm
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の設定に入れる
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の起動時の動作が非常に遅くなる現象が発生した。雰囲気的にはライブラリが読み込まれるのを待っている印象
しばらくそのままの状態で放置していたら、何故か改善された。何かローカルでコンパイルしていたのか?
language serverはGoのソースの定義元にジャンプしたりするときにGoのソースをリポジトリツリーに従ってサーチする。なので、mac上のソースの場所が実際のリポジトリに準拠していないと定義を探すことができず、ジャンプできない。
~/go/src/github.com/hogehoge/などにcloneすること
fmt, importsの自動設定などのために入れる
https://github.com/derekparker/delve
go getでintall
xcodeのコマンドラインは、すでにx-codeをインストール済みのため、すでにインストールされているとエラーになる
https://github.com/sebdah/vim-delve
https://note.com/miyazi777/n/nb2f520f91ed6
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/
:set clipboard=unnamed
で、pがシステムのクリップボードから貼り付ける形に設定変更した
yはシステムのクリップボードにyancするようになる
pで上書き貼り付けを行うと、元の文字列がregister 0に入ってしまうので、次にうっかりpで貼り付けてしまう。 面倒くさいので、ちょっとダサいがCtrl+pで常にregister 0を貼り付けるようにマップした
inoremap <C-p> <C-r>0
noremap <C-p> "0p
- ChatGPTのAPIを使うために、アカウント作成をして、API KEYを取得する
- loginした状態で、この画面を表示させると、Keyを作成するボタンが表示されるはず
- https://platform.openai.com/docs/quickstart/build-your-application
- mattnさんのpluginをありがたく使わせてもらう
- cursorの画面移動 左画面へ:<C-w>h 同様に j, k, l
- 画面自体を移動する 縦分割して左に:<C-w>H 同様に J, K, L
- Javaの開発をすることになって、jtd-lsを使っているのだが、javaのバージョンが古いため、最新のlsだと必要条件を満たさない
- ls-settingの機能を使って最新版を入れた後、jdtの旧バージョンで上書きして使用しているが、何かの拍子で度々起動しなくなってしまう。
- 現状は別ディレクトリにバックアップしておいて、それを上書きして復旧しているが、なんだろうか。。。時間があるときにちゃんと調べる
- 長らくJerrybeansを使っていたが、doome-oneに切り替えた。
- vim-plugの設定で導入可能
- 背景色の透明化など、いくつかの設定を追加した