neovim
```
)が消える
LazyVimを使うとmarkdownのtriple grace accent(nvim本体のconceallevel
設定が非0になっているのが原因っぽいです.
最大3で数字が大きいほどモノが隠れていくようです.
conceallevel
の確認方法
command modeで以下を実行します.
:set conceallevel?
私の場合はconceallevel=2
でした.
修正方法
vim.opt.conceallevel = 0
conceallevel
を0
にします.
markdownのみ0
にしたい場合はもう少し工夫が必要です(future work).
他の原因
plugin由来,特にplasticboy/vim-markdown
由来で同じ現象が発生するようなので上記の方法で解決しない場合は以下も参考にして下さい.
conceallevel
に関する公式doc
nerd fontのinstall
brew install font-hack-nerd-font
iTerm2の設定→Profiles
→使ってるprofileを選択→Text
→Use a different font for non-ASCII text
に✅→Hack Nerd Font Mono
を選択→(font sizeをmain fontと合わせる (任意))
sudoがないスパコンにnvim入れたメモ
問題
- sudoがない→package manager基本死ぬ
- linuxbrewもなんだかんだ無理だったが後述の
patchelf
を入れるのには使えたため入れ損ではなかった
- linuxbrewもなんだかんだ無理だったが後述の
- binary落としてくればよい.対応したversionのglibcが入ってないといけない
- 必要なglibcがスパコンに入ってなかった→glibcのsource build
glibc 2.29のsource build
wget http://ftp.gnu.org/gnu/glibc/glibc-2.31.tar.gz
tar xf glibc-2.29.tar.gz
cd glibc-2.29
mkdir build && cd build
../configure --disable-werror --prefix=$HOME/local/glibc-2.29
make
make install
-
--prefix
はinstall directory - parallel buildしているとbuildが死ぬっぽいので並列数(
-j
)を絞りつつ何回かnothing to buildになるまでmakeする(は?) -
--disable-werror
をつけておかないとwarningで落ちる(参考)
nvimが使用するglibcを指定
- 追加したglibcが見えるようにPATHとかLDとかに追加しないといけないと思うかもしれないがそれをやると他のcommand-line toolが全部死ぬのでやってはいけない
- もしやってしまうと
vim
とかも死ぬのでかなり詰み感が出る- 落ち着いて
LD_LIBRARY_PATH
から追加したglibcのpathを消すと直る
- 落ち着いて
- もしやってしまうと
- 代わりに
patchelf
を使う- スパコンになかったので
brew install patchelfで入れた
- スパコンになかったので
patchelf --set-interpreter $HOME/local/glibc-2.29/lib/ld-linux-x86-64.so.2 $HOME/local/bin/nvim
patchelf --set-rpath $HOME/local/glibc-2.29/lib $HOME/local/bin/nvim
- 1行目がライブラリローダー(LD)の指定,2行目glibcのpath指定.
patchelfとenvironment moduleが競合するので調査中...
patchelfだとダメっぽいのでenv
を使うwrapperを書いてnvim
だけ隔離環境を使う
#!/bin/bash
# Version of glibc
VGLIBC=2.29
# Define the custom path
CUSTOM_PATH="$HOME/local/glibc-${VGLIBC}/bin:$PATH"
# Define the custom library path
CUSTOM_LIB_PATH="$HOME/local/glibc-${VGLIBC}/lib:$LD_LIBRARY_PATH"
# Define the path to the nvim binary
NVIM_BINARY="/path/to/nvim"
# Use the env command to set LD_LIBRARY_PATH only for this execution of nvim
exec env PATH="$CUSTOM_PATH" LD_LIBRARY_PATH="$CUSTOM_LIB_PATH" "$NVIM_BINARY" "$@"
alias nvim="/path/to/run_nvim.sh"
-
/path/to/
は適宜書き換える
それNixでよくない?
VScode用の設定
if not vim.g.vscode then
-- 非code用の設定
else
-- code用の設定
end
keybind
モード切り替え
i
: 挿入モード
<esc>
: ノーマルモード
:
コマンドモード
normal mode
-
J
改行を削除 (spaceを入れて下の行と連結) -
gJ
改行を削除(spaceを入れずに下の行と連結) -
dW
現在の単語を削除(次の空白まで) -
dw
現在の単語を削除(ワード単位)
-
zz
カーソル位置そのままでいい感じにスクロール -
zt
カーソル位置そのままでいい感じにスクロール,カーソル行はかなり上にくる
source
:source $MYVIMRC
あるいは
:luafile $MYVIMRC
スパルタンvim 5.1
たまに出るerror
on provider cmp:GHOST_TEXT.win:
Error executing lua: ...hare/nvim/lazy/nvim-cmp/lua/cmp/view/ghost_text_view.lua:35: Invalid buffer id: 39
stack traceback:
[C]: in function 'nvim_buf_del_extmark'
...hare/nvim/lazy/nvim-cmp/lua/cmp/view/ghost_text_view.lua:35: in function <...hare/nvim/lazy/nvim-cmp/lua/cmp/view/ghost_text_view.lua:33>Error in decoration provider cmp:GHOST_TEXT.win:
Error executing lua: ...hare/nvim/lazy/nvim-cmp/lua/cmp/view/ghost_text_view.lua:35: Invalid buffer id: 39
stack traceback:
[C]: in function 'nvim_buf_del_extmark'
...hare/nvim/lazy/nvim-cmp/lua/cmp/view/ghost_text_view.lua:35: in function <...hare/nvim/lazy/nvim-cmp/lua/cmp/view/ghost_text_view.lua:33>
LazyVimで用いられているoption設定は
truecolor対応
iTerm2+LazyVimだと
defaultでtruecolorになってるっぽいので何もしなくてもおkっぽい?
LazyVimのkeymap
buffer/windowの移動
buffer
<S-h>
: 前のbuffer
<S-l>
: 次のbuffer
window
<C-h>``<C-j>``<C-j>``<C-j>
: window移動
mini.surround
gsa
add surronding
textobj, 括弧が続く
複数行をまとめてcomment out
- マウスで該当行を選択→
<S-V>
(visual line mode)→gc
-
<S-V>
(visual line mode)→該当行を選択→gc
nvim使うようになったきっかけ
Telescope
文字検索を:Telescope live_grep
でできると聞いてやってみたら
[telescope.live_grep]: 'ripgrep', or similar alternative, is a required dependency for the live_grep picker. Visit https://github.com/BurntSushi/ripgrep#installation for installation instructions.
と出た.書いてある通りだがripgrep
の類が必要ということでripgrep
をinstallした
brew install ripgrep
Lua guide
LSPで表示される仮想的なmessageの全文を表示させる
cursorは表示したいmessageのある行に合わせる
:lua vim.diagnostic.open_float()
Julia LSPの導入
以下を実行
:LspInstall julials
※mason.nvim
, nvim-lspconfig
, mason-lspconfig.nvim
が入ってる前提(LazyVimだと入ってる)
LazyVimだとそもそもLazyExtraで:LspInstall
も不要なものが多いがJuliaは含まれていないので自分で実行する必要がある
気になるプラギン
diffview.nvim
mdmath.nvim
vim-qfreplace
grepしたものに置換を当てるみたいなものらしい
capture.vim
:mes
の内容コピーできる :Capture mes
LazyVimだと:Noice
で過去のmessageが見られる
Luaの設定fileのprint debugに使うもの
print("Hello, nvim!")
-
vim.notify("Hello, nvim!")
- startup中に
print
を読んでも出力されないのでこちらを使う
- startup中に
-
vim.api.nvim_exec2
- vimのcommandをlua script中で実行するのに使う.書式は以下の例参考
:imap <Tab>
の結果を出力する函数
例: startup中でも-- Function to capture and print the result of `:imap <Tab>`
local function debug_tab_mapping()
-- Run the :imap command and capture its output
local tab_mapping = vim.api.nvim_exec2("silent! imap <Tab>", { output = true })
-- Print the output to check the mapping
vim.notify(tab_mapping.output)
end
プラギンリスト
-
'<,'>
置換のときに使うprefix. 選択範囲を示す
iTerm2でM-prefix keybing (meta key)使いたい場合,iTerm2のprofile設定の Left/Right Option keyの項目でMeta
keyに設定する必要がありそう(未検証)