로딩...

neovim

list

  • buflist :buffers
  • arglist :args
    • buffer list 의 subset 으로 argument 로 열린 리스트가 보여진다
    • argadd 명령을 통해서 확장 가능하다

ex

  • @: 최근 명령어 실행
  • ctrl+f ex 명령어 프롬프트 상태에서 누르면 ex history 검색이 가능해진다

.nvimrc

  • .nvimrc 를 둬서 해당 디렉토리에서 vim 을 실행시 특정 스크립트 등을 실행할 수있다.
  • .nvimrc 설정
    vim.opt.exrc = true
    vim.opt.secure = true
    
  • .nvimrc 파일 내용 예
    lua << EOF
    vim.loop.os_setenv('VIRTUAL_ENV', '~/.local/data/virtualenvs/kaggle-1Dzpi2UB')
    EOF
    

python

# python 지원 확인
nvim +checkhealth
# python 지원 업그레이드
python3 -m pip install --upgrade pynvim

usage

특정 파일을 특정 파일 타입으로 매핑

error

emoji 등 유니코드 캐릭터가 존재한 이후에는 yy 등 카피가 clipboard(reg *) 에 복사되지 않는 이슈

vim.cmd ":let $LANG='en_US.UTF-8'"

.local/share/nvim/runtime/lua/vim/lsp/semantic_tokens.lua:98: attempt to index field 'semanticTokensProvider' (a nil value)

Error on prepareRename: Request textDocument/prepareRename failed with message:  You cannot rename this element. 

[after/]ftplugin/*.lua 에서 설정한 키맵이 전역으로 번지는 문제

예를 들어 markdown filetype 에 특정키 q 를 매핑해서 bdelete 를 하게되면 markdown 이후의 모든 파일들에대해서 해당 키맵이 동작하는 문제

plugin

북마크

neovim lua 기반 플러그인 환경 설정


neovim-api

  • global events
    • client async request -> error occur
    • server -..-> notify error event later

buf -> stdin -> stdout

local buf = vim.fn.getbufline('%', 1, '$')
local stdin = buf.fn.getbufline('%', 1, '$')
vim.fn.system('grep content', stdin)

vim.fn.system 의 두번째 인자가 stdin 의 역할을 한다


tabpage > window > buffer @todo

  • nvchadtabufline 을 사용
  • 창 분할마다를 window
  • buffer 는 window 아래로 귀속되지 않는 것으로 보인다

tabpage

  • vim.api.nvim_tabpage_get_number(0) -> 현재 tabpage number (우상단 표시)
  • vim.api.nvim_tabpage_get_win(0) -> 현재 tabpage number (우상단 표시)
    • question nvim_tabpage_get_number(0) 을 통해 넣은 경우(현재윈도우)와 0 을 넣은 경우가 다름

window

  • vim.api.nvim_win_get_tabpage(0) -> 현재 window 의 tab nubmer
  • vim.api.nvim_win_get_buf(0) -> 현재 window의 buf number

설정

lazigit