This osamu's starter is a copy and fork of the upstream starter template for LazyVim.
Basic idea of this customization is to keep fancy functionalities as opt-in.
I made extra features of 💤 LazyVim disabled when started as much as possible.
- Initial features are controlled in
lua/config/options.lua
. - Features can be modified via keymaps starting with
<leader>u
.
Optional features include.
- autocompletion
- with or without dashboard
- customize statusline w/o clock display
- unicode code point display in HEX E.g.,
[+U20]
. - filetype display E.g.,
[lua]
.
- unicode code point display in HEX E.g.,
This configuration can be installed for NVIM_APPNAME=nvim1
as:
$ git clone -b osamu git@github.com:osamuaoki/starter.git ~/.config/nvim1
This configuration can be used by nvim
command as:
$ export NVIM_APPNAME=nvim1
$ nvim
This osamu
branch is the branch which contains my latest forked content and
used on my workstation. The configuration has been updated since then. This is
mentioned in my previous memos:
This is only meant to be my backup configuration. I will mercilessly apply rebase to the latest upstream main branch and force push this branch. (My old settings may be found in other branches.)
In order to track the latest upstream main branch, add following to .git/config
file.
[remote "upstream"]
url = https://github.com/LazyVim/starter
pushurl = DISABLED_FOR_PUSH
fetch = +refs/heads/*:refs/remotes/upstream/*
Then, I will mercilessly rebase "osamu" branch with:
$ git remote update
$ git rebase -i upstream/main
...
$ git push -f
I added extra key bindings (†
after corresponding explanations):
<leader>ua
to toggle auto/manual pop-up for autocompletion<leader>uM
to toggle List Mode<leader>uN
to set notification timeout<leader>uo
to set spelloptions ("",camel,noplainbuffer)<leader>uS
to set signcolumn<leader>ut
to set tabstop<leader>uu
as "NOP" to prevent accidentalu
in Normal mode. (hidden for `which-key)<leader>uW
to toggle check tailspace<leader>uz
to set foldcolumn
I kept :set ignorecase
and :set smartcase
.
- Use regex string with mixed-cases or
\C
to make search as case sensitive one for nvim internal searches - Use regex string with
\c
to force search as case insensitive one for nvim internal searches - Use regex string with
(?-i)
as case sensitive one for:gr pattern
(backend:rg
) - Use regex string with
(?i)
as case insensitive one for:gr pattern
(backend:rg
)
I now commit lazyvim.json
to this repo. This records LazyExtras selected packages. (It seems lazy-lock.json
is not as critical.)
I now use editor.fzf
extension.
Items in Quickfix List can be managed via Telescope with the following keymap:
<Tab>
: Mark item<S-Tab>
: Un-mark item<C-q>
: Send all items not marked to quickfixlist (qflist) (C=Select mark-Cleared)<M-q>
: Send all items marked to quickfixlist (qflist) (M=Marked)
Quickfix list history can be managed via Telescope with the following keymap:
<leader>xf
: Quickfix list (FzfLua)<leader>xF
: Location list (FzfLua)<leader>xh
: Quickfix stack (FzfLua)
- Set notification timeout with
<leader>uN
. (Currently, it starts with 5000ms) - Erase notification also with
<esc>
so long timeout is OK. - Cool "fade_in_slide_out"
Text data are modified upon save not only by LSP based Auto Format but also by Editorconfig settings.
Place practically empty ~/.editorconfig
to disable for sources without .editorconfig
:
root = true
<leader>us
: spelling (enable/disable)<leader>uo
: spellingoptions (''
,camel
,noplainbuffer
)
In VISUAL-LINE mode, use gc
. (g
-prefix is not only for GOTO.).
Running mc
in terminal window is problematic even with --colors=...
... so I gave up.
Refer also to the upstream documentation to get started.