vim関連のあれこれ
開いているファイルの文字コードの確認
set fileencoding?
デフォルトの文字コードをUTF8にする
set encoding=utf-8
set fileencodings=utf-8
vim-refでriを検索する
vim-refはRubyに限らずvimでリファレンスを参照するプラグイン、そこからRubyのリファレンス参照コマンドのriを使うプラグインが vim-ref-ri
[[Uniteを使ってriを検索できるvim-ref-riというプラグインを作った|http://yuku-tech.hatenablog.com/entry/20120429/1335628327]
使い方は簡単。vim-refとして検索するなら
:Ref ri NAME
Uniteインタフェースでインクリメンタルに検索したいなら
:Unite ref/ri
と実行する
vim-refで辞書を引く
※ 一通り、動作するように設定できてから気づいた… これは、tmuxで範囲を選択し、翻訳できた方が汎用性が広い…
:Ref alc hello
などとして、vim-refにalcが定義されていた時代もあったのだが、アルクから指摘があり、コードから削除した背景があったようだ
今のvim-refは webdictというソースに変更され、これを設定することで複数ソースに対応している(上記URLのすぐ次のエントリで対応している)
設定方法はvim-refの環境を整えるを参考にした
"webdictサイトの設定
let g:ref_source_webdict_sites = {
\ 'je': {
\ 'url': 'http://dictionary.infoseek.ne.jp/jeword/%s',
\ },
\ 'ej': {
\ 'url': 'http://dictionary.infoseek.ne.jp/ejword/%s',
\ },
\ 'wiki': {
\ 'url': 'http://ja.wikipedia.org/wiki/%s',
\ },
\ }
"デフォルトサイト
let g:ref_source_webdict_sites.default = 'ej'
"出力に対するフィルタ。最初の数行を削除
function! g:ref_source_webdict_sites.je.filter(output)
return join(split(a:output, "\n")[15 :], "\n")
endfunction
function! g:ref_source_webdict_sites.ej.filter(output)
return join(split(a:output, "\n")[15 :], "\n")
endfunction
function! g:ref_source_webdict_sites.wiki.filter(output)
return join(split(a:output, "\n")[17 :], "\n")
endfunction
nmap <Leader>rj :<C-u>Ref webdict je<Space>
nmap <Leader>re :<C-u>Ref webdict ej<Space>
vimのリストいろいろ
2007-01-22 - 窓の外に出てみれば リストいろいろ
:history
:registers
:marks
:ls (:buffers)
:args
:jumps
:changes
:tags
OmniSharpによるインテリセンスを使う
https://blog.yucchiy.com/2018/07/01/omnisharp-vim-with-roslyn/ 結構、時間かかる、exeファイルのビルド、ビルド後のバイナリのテストなどで1hはかかる
途中、サーバのレポジトリは下記コマンドでcloneした
ghq get https://github.com/OmniSharp/omnisharp-roslyn.git
結果的に決まるパスは下記のdeinの設定ファイルで指定している。 omnisharp-roslyn の exeファイルのパスになる。
~/.config/dein/plugins.toml
下記も必要
brew install mono
brew cask install mono-mdk
neovim関連エラー
No module named neovim
というエラーが出た場合、
pip3 --no-cache-dir install -I neovim
とpythonモジュールをインストールすることで改善する
ジャンプ
「ジャンプ」とは次のコマンドのどれかを意味します: 新しいファイルの編集を始める コマンドと、"'", “`”, “G”, “/”, “?”,“n”, “N”, “%”, “(”, “)”, “”, ”?”, “{”,"}", “:s”, “:tag”, “L”, “M”, “H” です。
おおまかに、left-right-motions, up-down-motions, word-motions 以外
ジャンプリストは、' マークの履歴。 ジャンプリストの履歴は重複しない。 同じ行の履歴が追加された場合は、古いものが削除される。 CTRL-o で履歴を遡った状態のときにジャンプすると、 履歴の位置は最後の行に戻る。
変更リストは、. マークの履歴。 変更リストの履歴は重複する。 同じ行の履歴が追加されても、古いものは削除されない。
g; で履歴を遡った状態のときに何か変更を行うと、 履歴の位置は最後の行に戻る。
^o
^i
g;
g,
Vim-users.jp - Hack #115: Vimのバージョンや拡張機能をチェックする
バージョンチェック
v:version変数をチェックすればよいです。百の位がVimのメジャーバージョン、十の位と一の位がマイナーバージョンを表します。例えばVim 7.2で:echo v:versionすると、702が表示されます。720ではありません。Vimがバージョン7以上であることをチェックするには次のようにします。
if v:version < 700
echoerr 'Does not work this version of Vim "' . v:version . '".'
finish
endif
ちなみに、パッチレベルはhas(‘patch100’)などでチェックします。詳しくは、:help has-patchを参照してください。 vim vimprocがencodingを変更するようにいってきた
# encoding を utf-8 にする
.vimrc のエンコーディングを utf-8 にする
私の設定ファイルもeuc-jpだったので、
lv -Iej -Ou8 .vimrc > .vimrc.new && mv .vimrc.new .vimrc
として変換し、vimを起動しなおした
vim起動時はtmuxのステータスラインを非表示にする
" vim起動時はtmuxのステータスラインを非表示にする
" http://qiita.com/items/89aa2e4b55ea51ecdd59
if !has('gui_running') && $TMUX !=# ''
augroup Tmux
autocmd!
autocmd VimEnter,VimLeave * silent !tmux set status
augroup END
endif
HTMLなどの編集に便利なvimrcの設定例
Command Line で使用しているツールまとめ vol.3 #tmux #blogger #Vim #Mac #Zsh - Qiita
~/.vimrc
" ### プラグイン bundle"{{{
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" プラグイン管理
Bundle 'gmarik/vundle'
"Bundle 'Shougo/neobundle.vim'
Bundle 'YankRing.vim'
Bundle 'Shougo/neocomplcache'
Bundle 'Shougo/neocomplcache-snippets-complete'
Bundle 'Smooth-Scroll'
Bundle 'smartword'
Bundle 'thinca/vim-quickrun'
Bundle 'tpope/vim-markdown'
Bundle 'Shougo/unite.vim'
Bundle 'mrtazz/simplenote.vim'
Bundle 'yuratomo/w3m.vim'
Bundle 'Shougo/vimfiler'
Bundle 'mattn/zencoding-vim'
Bundle 'mattn/excitetranslate-vim'
filetype plugin indent on"}}}
"### プラグイン設定 plugin"{{{1
"## str2htmlentity.vim "{{{2
"" 範囲指定し sx でHTMLの特殊文字を変換する
" http://www.serendip.ws/resource/str2htmlentity.vim
vmap <silent> sx :Str2HtmlEntity<cr>
vmap <silent> sr :Entity2HtmlString<cr>
"}}}
"}}}
"### 基本設定 setting"{{{
" :CopyCmdOutput でコマンド欄をクリップボードへコピー
" http://d.hatena.ne.jp/hide04/20111223/1324621495
func! s:func_copy_cmd_output(cmd)
redir @*>
silent execute a:cmd
redir END
endfunc
command! -nargs=1 -complete=command CopyCmdOutput call
<SID>func_copy_cmd_output(<q-args>)
" F5 でHTMLのプレビュー for Safari
" http://vim.wikia.com/wiki/Preview_current_HTML_file
nnoremap <F5> :!open -a Safari %<CR><CR>
" foldmethod の折りたたみ
set foldmethod=marker
" カッコ内に自動的に移動、カッコを補完、カッコを範囲指定する。
" http://d.hatena.ne.jp/spiritloose/20061113/1163401194
inoremap { {}<LEFT>
inoremap [ []<LEFT>
inoremap ( ()<LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>
vnoremap { "zdi^V{<C-R>z}<ESC>
vnoremap [ "zdi^V[<C-R>z]<ESC>
vnoremap ( "zdi^V(<C-R>z)<ESC>
vnoremap " "zdi^V"<C-R>z^V"<ESC>
vnoremap ' "zdi'<C-R>z'<ESC>
"}}}
参考
-
オレオレ Neovim 環境構築 with LazyVim #neovim - Qiita
- LazyVimの使い方
-
copilotの導入
- [GitHub - github/copilot-cli: The CLI for GitHub Copilot](LazyVim/lua/lazyvim/plugins/extras/coding/copilot.lua at main · LazyVim/LazyVim
- LazyVim/lua/lazyvim/plugins/extras/coding/copilot.lua at main · LazyVim/LazyVim
- 設定サンプル、でも現状、デフォルトだけど
-
copilot chat を使う方法
- Neovim から Copilot Chat を使う #Vim - Qiita
- Neovim から Copilot Chat を使う #Vim - Qiita
- まだできてないが、細かい設定が必要そう
-
markdownでのTable作成時に肩のチカラが抜けるプラグインvim-table-modeを導入してみた | DevelopersIO
-
iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する - ゆるよろ・オブ・ザ・( ;゜皿゜)ノシΣ フィンキ゛ィィーーッ!!! 日記