๐ง Vim & Neovim ์ ๋ฆฌ ๋
ธํธ
๐ Marks
m + ํค : ๋งํฌ ์ค์ :delm {key} : ํน์ ๋งํฌ ์ญ์ :delm! : ๋ชจ๋ ๋งํฌ ์ญ์ ` : ๋งํฌ ๋ชฉ๋ก ํ์
๐ keywordprg
โช Undo History
u : Undo<C-r> : Redo:undolist : Undo ํ์คํ ๋ฆฌ ํ์ธ:UndotreeToggle : Undo ํธ๋ฆฌ ๋ณด๊ธฐ (๐ฆ undotree ํ๋ฌ๊ทธ์ธ ํ์)
๐งฉ Fold
| ๋จ์ถํค | ๊ธฐ๋ฅ |
|---|
z m / z M | ์ ์ฒด ์ ๊ธฐ |
z r / z R | ์ ์ฒด ํผ์น๊ธฐ |
z c / z o | ํ์ฌ ์ปค์ ์์น fold ์ ๊ธฐ/ํผ์น๊ธฐ |
z a | fold ํ ๊ธ |
๐พ ์ธ์ฝ๋ฉ ๋ณ๊ฒฝ
1๏ธโฃ ํ์ฌ ๋ณด์ด๋ ๋ฌธ์์ ์ธ์ฝ๋ฉ ์์
1
2
| :e ++enc=utf-8
:e ++enc=euc-kr
|
2๏ธโฃ ํ์ฌ ํ์ผ์ ์ธ์ฝ๋ฉ ์์
1
2
| :set fileencoding=utf-8
:set fileencoding=euc-kr
|
โ๏ธ Neovim ์ค์น ๋ฐ ์ค์
1๏ธโฃ Neovim ์ค์น
2๏ธโฃ vim-plug ์ค์น
1
2
| sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
3๏ธโฃ ์ค์ ํ์ผ ์์ฑ
1
2
3
4
5
6
7
8
| " ~/.config/nvim/init.vim
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
...
call plug#end()
set number
...
|
4๏ธโฃ ํ๋ฌ๊ทธ์ธ ์ค์น
๐ก Neovim์ IDE์ฒ๋ผ ์ฌ์ฉํ๊ธฐ โ CoC.nvim
๐ง ๊ฐ์
๊ธฐ์กด Vim ์๋์์ฑ ํ๋ฌ๊ทธ์ธ๋ณด๋ค coc.nvim์ด ํจ์ฌ ๊ฐ๋ ฅํ๊ณ IDE์ ๊ฐ๊น์ด ๊ธฐ๋ฅ ์ ๊ณต.
1๏ธโฃ Node.js ์ค์น
1
| curl -sL install-node.vercel.app/lts | bash
|
2๏ธโฃ vim-plug์ ์ถ๊ฐ
1
| Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
3๏ธโฃ ์ค์น
4๏ธโฃ ์ธ์ด๋ณ ํ๋ฌ๊ทธ์ธ ์ค์น
1
2
3
4
| :CocInstall coc-json coc-tsserver
:CocCommand coc-clangd
" ์ ๋ ๊ฒฝ์ฐ
:CocCommand clangd.install
|
๐ ์ฐธ๊ณ : neoclide/coc.nvim GitHub
โ ๏ธ Swap File Error ํด๊ฒฐ
๋น์ ์ ์ข
๋ฃ ํ ์์ํ์ผ์ด ๋จ์์์ ๋ ๋ฐ์. ์๋ ํด๋๋ฅผ ์ ๋ฆฌํ๋ฉด ํด๊ฒฐ๋จ.
1
| rm -rf ~/.local/share/nvim/swap/*
|
โ๏ธ ์ฃผ์ Vim ์ต์
์ ๋ฆฌ
| ์ต์
| ๊ธฐ๋ฅ |
|---|
set nocompatible | ์ค๋ฆฌ์ง๋ vi์ ํธํ๋์ง ์์ |
set autoindent | ์๋ ๋ค์ฌ์ฐ๊ธฐ |
set cindent | C ์ธ์ด ์ ์ฉ ๋ค์ฌ์ฐ๊ธฐ |
set smartindent | ์ค๋งํธ ๋ค์ฌ์ฐ๊ธฐ |
set wrap | ์ค๋ฐ๊ฟ ํ์ฉ |
set nowrapscan | ๊ฒ์ ์ ๋ฌธ์ ๋์์ ๋๋๋ฆฌ์ง ์์ |
set nobackup | ๋ฐฑ์
ํ์ผ ์์ฑ ์ ํจ |
set visualbell | ์๋ชป๋ ํค ์
๋ ฅ ์ ์๊ฐ์ ์๋ฆผ |
set ruler | ์ปค์ ์์น ํ์ |
set shiftwidth=4 | ์๋ ๋ค์ฌ์ฐ๊ธฐ 4์นธ |
set number | ํ ๋ฒํธ ํ์ |
set fencs=ucs-bom,utf-8,euc-kr,latin1 | ๋ค์ํ ์ธ์ฝ๋ฉ ์ฒ๋ฆฌ |
set fileencoding=utf-8 | ํ์ผ ์ ์ฅ ์ธ์ฝ๋ฉ |
set tenc=utf-8 | ํฐ๋ฏธ๋ ์ธ์ฝ๋ฉ |
set expandtab | ํญ ๋์ ์คํ์ด์ค |
set hlsearch | ๊ฒ์์ด ํ์ด๋ผ์ดํ
|
set ignorecase | ๋์๋ฌธ์ ๋ฌด์ ๊ฒ์ |
set tabstop=4 | ํญ ๊ฐ๊ฒฉ 4์นธ |
set incsearch | ์ ์ง์ ๊ฒ์ |
syntax on | ๊ตฌ๋ฌธ ๊ฐ์กฐ |
filetype indent on | ํ์ผ ์ ํ๋ณ ๊ตฌ๋ฌธ ๊ฐ์กฐ |
set background=dark | ์์ ํ
๋ง ๋ฐฐ๊ฒฝ ์ค์ |
colorscheme desert | ์์ ํ
๋ง |
set backspace=eol,start,indent | ๋ฐฑ์คํ์ด์ค ํ์ฉ ๋ฒ์ ์ค์ |
set history=1000 | ํธ์ง ๊ธฐ๋ก ๊ฐ์ ์ค์ |
๐งพ ๋ฌธ๋จ ๋ค์ฌ์ฐ๊ธฐ
| ๋ช
๋ น | ์ค๋ช
|
|---|
> % | ์ค๊ดํธ ๊ตฌ๊ฐ ๋ค์ฌ์ฐ๊ธฐ |
> ib | ์๊ดํธ ๋ด๋ถ ๋ค์ฌ์ฐ๊ธฐ |
> at | ํ๊ทธ ๊ตฌ๊ฐ ๋ค์ฌ์ฐ๊ธฐ |
๐ ์ฌ๋ฌ ํ์ผ ํธ์ง
| ๋จ์ถํค | ๊ธฐ๋ฅ | ย |
|---|
<C-w> + x | ์ฐฝ ๊ต์ฒด | ย |
<C-w> + _ | ๊ฐ๋ก ๋ถ๋ฆฌ ์ ํ๋ | ย |
<C-w> + | | ์ธ๋ก ๋ถ๋ฆฌ ์ ํ๋ | ย |
<C-w> + = | ์ฐฝ ํฌ๊ธฐ ๊ท ๋ฑ ์กฐ์ | ย |
โจ ์๋์์ฑ ๊ธฐ๋ฅ
๊ธฐ๋ณธ ์๋์์ฑ
| ๋จ์ถํค | ๊ธฐ๋ฅ |
|---|
<C-p> / <C-n> | Vim ๊ธฐ๋ณธ ์๋์์ฑ (insert ๋ชจ๋) |
<C-x><C-l> | ๋ผ์ธ ๋จ์ ์๋์์ฑ |
<C-x><C-f> | ํ์ผ๋ช
/ ๊ฒฝ๋ก ์๋์์ฑ |
๐ช Abbreviate (์ถ์ฝ์ด)
์คํ ๊ต์ , ์๋์์ฑ์ ํ์ฉ ๊ฐ๋ฅ
| ๋ช
๋ น | ์ ์ฉ ๋ชจ๋ |
|---|
abbr | insert + command |
iabbr | insert ์ ์ฉ |
cabbr | command ์ ์ฉ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| " ์คํ ๊ต์
abbr consolee console
abbr coment comment
" ์๋์์ฑ
abbr cns console.log()
abbr cmt /* */
" <Esc> ํ์ฉ ๋ณต๊ตฌ
abbr cmt /* */<Esc>hhi
" expr ํ์ฉ ๋์ ์๋์์ฑ
iabbr __email abcd@efgh.com
iabbr <expr> __time strftime("%Y-%m-%d %H:%M:%S")
iabbr <expr> __file expand('%:p')
iabbr <expr> __name expand('%')
iabbr <expr> __pwd expand('%:p:h')
iabbr <expr> __branch system("git rev-parse --abbrev-ref HEAD")
|
๐ ์ฐธ๊ณ : John Gribโs Vim Auto Completion
Buffer & Window
1
2
| :e! # ํ์ฌ ๋ฒํผ ๊ฐ์ ์ฌ๋ก๋
:e # ํ์ฌ ๋ฒํผ ์ฌ๋ก๋
|