FAQ - minsuk-jang/teamproject GitHub Wiki

์ฃผ์˜: :'CheckHealth' ๋Š” FAQ์—์„œ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„ ํ•ด ๋ณด์„ธ์š” !

Something broke after upgrading Neovim? //Neovim์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๊ณ ์žฅ๋‚ฌ์Šต๋‹ˆ๊นŒ?

See Following-HEAD, which documents breaking changes. //Following-HEAD์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”

Where should I put my config (vimrc)? //Config('vimrc')๋Š” ์–ด๋””์— ๋„ฃ์–ด์•ผ ํ•˜๋‚˜์š”?

The default config file location is: //๊ธฐ๋ณธ์ ์ธ config ํŒŒ์ผ ์œ„์น˜๋Š” :

~/.config/nvim/init.vim

You can copy your existing vimrc there, or symlink to it. :help nvim-from-vim /๊ธฐ์กด vimrc๋ฅผ ๊ฑฐ๊ธฐ์—์„œ ๋ณต์‚ฌ ๋ฐ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ณต์‚ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Can I use Ruby-based Vim plugins (e.g. LustyExplorer)?

//Ruby ๊ธฐ๋ฐ˜ Vim ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? Yes, starting with Neovim 0.1.5 PR #4980 the legacy Vim if_ruby interface is supported. /์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค, Neovim 0.1.5๋ถ€ํ„ฐ ---- ๋ ˆ๊ฑฐ์‹œ Vim 'if_ruby' ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

Can I use Lua-based Vim plugins (e.g. neocomplete)?

//Lua ๊ธฐ๋ฐ˜ Vim ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? Yes, starting with Neovim 0.2 PR #4411 Lua is built-in. /์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค, Neovim 0.2๋ถ€ํ„ฐ ์ง€์› ๋ฉ๋‹ˆ๋‹ค.

How can I use true colors in the terminal? //ํ„ฐ๋ฏธ๋„์— ํŠธ๋ฃจ ์ƒ‰์ƒ์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ ํ•˜๋‚˜์š”?

Add this to your init.vim: //๋‹น์‹ ์˜ 'init.vim' ์— ์ถ”๊ฐ€ํ•˜์„ธ์š”

set termguicolors

See this gist for more information about true colors, such as what terminals support it. //ํŠธ๋ฃจ ์ƒ‰์ƒ(์˜ˆ: ํ„ฐ๋ฏธ๋„์ด ์ง€์›ํ•˜๋Š” ์ƒ‰์ƒ) ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ----๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”

How can I change the cursor shape in the terminal? /ํ„ฐ๋ฏธ๋„์˜ ์ปค์„œ ๋ชจ์–‘์€ ์–ด๋–ป๊ฒŒ ๋ฐ”๊พธ๋‚˜์š”?

  • For Nvim 0.1.7 or older: see the note about NVIM_TUI_ENABLE_CURSOR_SHAPE in man nvim. //Nvim 0.1.7 or ๊ตฌ ๋ฒ„์ „ : NVIM_TUI_ENABLE_CURSOR_SHAPE in man nvim์„ ์ฐธ์กฐ
  • For Nvim 0.2 or newer: cursor styling is controlled by the guicursor option. //Nvim 0.2 or ์‹  ๋ฒ„์ „ :
    • To disable cursor styling, see :help 'guicursor'. //์ปค์„œ ์Šคํƒ€์ผ์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด , help 'guicursor' ๋ฅผ ๋ณด์„ธ์š”.
    • If you want a non-blinking cursor, use blinkon0. See :help 'guicursor'. //๊นœ๋นก์ด์ง€ ์•Š๋Š” ์ปค์„œ๋ฅผ ์›ํ•œ๋‹ค๋ฉด blinkon0. See :help 'guicursor'๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
    • guicursor is enabled by default only if Nvim is certain it won't cause problems. If you know that cursor shaping works on your terminal, set guicursor in your init.vim. //guicursor๋Š” Nvim์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ _default_์— ์˜ํ•ด ํ™œ์„ฑํ™” ๋ฉ๋‹ˆ๋‹ค. ์ปค์„œ ๋ชจ์–‘์ด ํ„ฐ๋ฏธ๋„์—์„œ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, init.vim์— guicursor๋ฅผ ์„ค์ •ํ•˜์„ธ์š”
      :set guicursor=n-v-c:block-Cursor/lCursor-blinkon0,i-ci:ver25-Cursor/lCursor,r-cr:hor20-Cursor/lCursor
      
  • The Vim terminal options t_SI and t_EI are ignored, like all other t_XX options. //Vim ํ„ฐ๋ฏธ๋„ ์˜ต์…˜ t_SI ์™€ t_EI๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  't_XX' ์˜ต์…˜๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
  • Old versions of libvte (gnome-terminal, roxterm, terminator, ...) do not support cursor style control codes. #2537 //์ด์ „ ๋ฒ„์ „์˜ libvte๋Š” ์ปค์„œ ์Šคํƒ€์ผ ์ œ์–ด ์ฝ”๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Note: some plugins like "ctrlp" override guicursor even when it is empty. To totally disable cursor updates, you can set VTE_VERSION="100". //์ฐธ์กฐ: "ctrlp"์™€ ๊ฐ™์€ ์ผ๋ถ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ 'guicursor'๋ฅผ ๋ฎ์–ด ์”๋‹ˆ๋‹ค. ์ปค์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด 'VTE_VERSION="100"์„ ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • But it would be better to fix the plugin: it should not modify guicursor if it is empty. //๊ทธ๋Ÿฌ๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค: guicursor์ด ๊ณต๋ฐฑ์ด๋ผ๋ฉด ์ˆ˜์ •ํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

Cursor style isn't restored after exiting Nvim /Nvim์„ ์ข…๋ฃŒ ํ•œ ํ›„์— ์ปค์„œ ์Šคํƒ€์ผ์ด ๋ณต์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Terminals do not provide a way to query the cursor style. Use a VimLeave autocommand to set the cursor style when Nvim exits: //ํ„ฐ๋ฏธ๋„์€ ์ปค์„œ ์Šคํƒ€์ผ์„ ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Nvim์ด ์ข…๋ฃŒ ํ•  ๋•Œ 'VimLeave' ์ž๋™ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค์„œ ์Šคํƒ€์ผ์„ ์„ค์ •ํ•˜์„ธ์š”:

au VimLeave * set guicursor=a:block-blinkon0

Cursor shape doesn't change in tmux //tmux์—์„œ ์ปค์„œ ๋ชจ์–‘์ด ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Add this to your .tmux.config: //๋‹น์‹ ์˜ .tmux.config ์— ์ถ”๊ฐ€ํ•˜์„ธ์š”

set -g -a terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'

See #3165 for discussion.

Is Windows supported? //์œˆ๋„์šฐ์—์„œ ์ง€์›๋˜๋‚˜์š”?

Yes, starting with the 0.2 release. //๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค . -----๋ถ€ํ„ฐ ์ง€์›๋ฉ๋‹ˆ๋‹ค. See the Install page. //---- ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•˜์„ธ์š”

How to use the Windows clipboard from WSL? //WsL๋ถ€ํ„ฐ ์œˆ๋„์šฐ ํด๋ฆฝ๋ณด๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?

sudo ln -s /mnt/d/Neovim/bin/win32yank.exe /usr/bin/win32yank

See #6227. //---- ํ™•์ธํ•˜์„ธ์š”

What happened to --remote and friends? // -remote ์™€ ๊ด€๋ จ๋œ ๊ฒƒ๋“ค์— ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๊นŒ?

The code for that family of command-line arguments was removed. It may eventually be reimplemented using the Neovim API, but until then neovim-remote can be used instead. //ํ•ด๋‹น ๋ช…๋ น ํ–‰ ์ธ์ˆ˜ ๋‹จ์œ„ ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. NeovimAPI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ๊ตฌํ˜„ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋•Œ๊นŒ์ง€ ----๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. See #1750 for more information. //๋” ๋งŽ์€ ์ •๋ณด๋Š” -----๋ฅผ ํ™•์ธํ•˜์„ธ์š”

Runtime issues //๋Ÿฐํƒ€์ž„ ๋ฌธ์ œ๋“ค

clipboard: provider is not available //ํด๋ฆฝ๋ณด๋“œ: ๊ณต๊ธ‰์ž๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Make sure that Neovim can find its runtime. // ----- ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

Copying to X11 primary selection with the mouse doesn't work //๋งˆ์šฐ์Šค๋กœ X11 ๊ธฐ๋ณธ ์„ ํƒ์„ ๋ณต์‚ฌ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

clipboard=autoselect is not implemented yet. As a workaround, use the mapping // clipboard=autoselect ์€ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด, ๋งคํ•‘์„ ์‚ฌ์šฉํ•˜์„ธ์š”. vnoremap "*ygv

My CTRL-H mapping doesn't work //CTRL-H ๋งคํ•‘์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

This was fixed in Neovim 0.2.// Neovim 0.2์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. If you are running Neovim 0.1.7 or older, adjust your terminal's "kbs" (key_backspace) terminfo entry: //๋งŒ์•ฝ ๋‹น์‹ ์ด Neovim 0.1.7 or ๊ตฌ ๋ฒ„์ „ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ํ„ฐ๋ฏธ๋„์˜ "kbs" terminfo ํ•ญ๋ชฉ:

infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
tic $TERM.ti

(Feel free to delete the temporary *.ti file created after running the above commands). //์œ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ ํ•œ ํ›„, ์ƒ์„ฑ๋œ *.ti ์ž„์‹œ ํŒŒ์ผ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ญ์ œ ํ•˜์„ธ์š”.

<Home> or some other "special" key doesn't work //ํ™ˆ ๋˜๋Š” ๋‹ค๋ฅธ ํŠน์ •ํ•œ ํ‚ค๋“ค์ด ์ž‘๋™ํ•˜์ง€์•Š์Šต๋‹ˆ๋‹ค.

Make sure $TERM is set correctly. // ----- ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ•˜์„ธ์š”.

  • For screen or tmux, TERM should be screen-256color (Not xterm-256color) //ํ™”๋ฉด ๋˜๋Š” tmux, ---- ์€ ----- ์ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • In other cases if "256" does not appear in the string it's probably wrong. Try TERM=xterm-256color. //๋˜ ๋‹ค๋ฅธ ๊ฒฝ์šฐ, ๋ฌธ์ž์—ด์— "256"์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ์•„๋งˆ ํ‹€๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ---- ์‹œ๋„ํ•˜์„ธ์š”.

:! and system() do weird things with interactive processes

//-- ์™€ ----- ๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์—์„œ ์˜ค์ž‘๋™์„ ํ•ฉ๋‹ˆ๋‹ค.

Interactive commands are supported by :terminal in Neovim. But :! and system() do not support interactive commands, primarily because Neovim UIs use stdio for msgpack communication, but also for performance, reliability, and consistency across platforms (see :help gui-pty). //์ƒํ˜ธ์ž‘์šฉ ๋ช…๋ น์€ Neovim์˜ ํ„ฐ๋ฏธ๋„์— ์˜ํ•ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ --์™€ ---- ๊ฐ™์€ ์ƒํ˜ธ์ž‘์šฉ ๋ช…๋ น์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ Neovim UI๊ฐ€ msgpack ํ†ต์‹ ์„ ์œ„ํ•ด stdio๋ฅผ ์‚ฌ์šฉ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ ํ”Œ๋žซํผ ์ „๋ฐ˜์˜ ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ ๋ฐ ์ผ๊ด€์„ฑ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค -----์™€ -----๋ฅผ ํ™•์ธํ•˜์„ธ์š”. See also #1496

Python support isn't working //Python ์ง€์›์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Run :CheckHealth (available in 0.1.5) inside Neovim for automatic diagnosis. /์ž๋™์ง„๋‹จ์„ ์œ„ํ•œ Neovim์— ์žˆ๋Š” -------์„ ์‹คํ–‰ํ•ด๋ณด์„ธ์š” Additional hints: //์ถ”๊ฐ€์ ์ธ ํžŒํŠธ

  • If you are using pyenv or virtualenv for the neovim python module, you must /๋‹น์‹ ์ด --๋ฅผ ์œ„ํ•ด pyenv ๋˜๋Š” virtualenv๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ๋‹น์‹ ์€ ๋ฐ˜๋“œ์‹œ ------๋ฅผ ์„ค์ • ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค set g:python_host_prog and/or g:python3_host_prog to the virtualenv's interpreter path.
  • Read :help provider-python. //---- ์ฝ์–ด๋ณด์„ธ์š”
  • Be sure you have the latest version of the neovim Python module. /Neovim Python๋ชจ๋“ˆ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”
pip  install --upgrade neovim
pip2 install --upgrade neovim
pip3 install --upgrade neovim

Neovim์€ ๋Ÿฐํƒ€์ž„์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ : help nvim์ด `E149 : Sorry, nvim์„ ์œ„ํ•œ ๋„์›€ ์—†์Œ' ์„ ๋ณด์—ฌ์ค„ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

$ VIM,$ VIMRUNTIME ๊ฐ€ : echo $ VIM , : echo $ VIMRUNTIME๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ Neovim์˜ ๋Ÿฐํƒ€์ž„ (Vim๊ณผ ๋ฐ˜๋Œ€)์„ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€/ usr / share / nvim๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ œ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. / usr / share / nvim / runtime ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์œ„์˜$ VIMRUNTIME์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” runtimepath (: set runtimepath? ')๋ฅผ ์šฐ์—ฐํžˆ ๋ฎ์–ด ์“ฐ์ง€ ์•Š๋„๋ก ํ•˜์‹ญ์‹œ์˜ค (: help'runtimepath '`์ฐธ๊ณ ).

E518 : ์•Œ ์ˆ˜์—†๋Š” ์˜ต์…˜ : [option]

์ผ๋ถ€ ์˜ค๋ž˜๋œ / ๋ถˆํ•„์š”ํ•œ ์˜ต์…˜์ด Neovim์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๋ชฉ๋ก์€ : help nvim-features-removed๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋„ค๋นŒ์€ ์ฒœ์ฒœํžˆ ์ง„ํ–‰์ค‘์ž…๋‹ˆ๋‹ค.

nvim์˜ ์ตœ์ ํ™” ๋œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. : CheckHealth nvim ์€ ์ด๋Ÿฌํ•œ "๋นŒ๋“œ ์œ ํ˜•" ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณด๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค :

Build type: RelWithDebInfo
Build type: MinSizeRel
Build type: Release

Build type : Debug ๋ฅผ๋ณด๊ณ  ์†Œ์Šค ์—์„œ Neovim์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒฝ์šฐ Building Neovim # optimized-builds๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
ํƒ€์‚ฌ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์œ ์ง€ ๋ณด์ˆ˜ ๋‹ด๋‹น์ž์—๊ฒŒ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์ƒ‰์ƒ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์…ธ์—์„œTERM = xterm-256color nvim์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ์ƒ‰์ƒ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜๋ฉด ์‚ฌ์šฉ์ž ํ”„๋กœํŒŒ์ผ (๋ณดํ†ต~ / .profile)์— TERM ๊ฐ’์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

export TERM=xterm-256color

tmux๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ด๊ฒƒ์„tmux.conf์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค :

set -g default-terminal "screen-256color"

์–ด๋–คtmux ์‚ฌ์šฉ์ž๋Š” ๋Œ€์‹  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค :

set -g default-terminal "screen-256color-bce"

GNU screen์˜ ๊ฒฝ์šฐ configure your '.screenrc' ๋ฅผ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค :

term screen-256color

**์ฐธ๊ณ  : ** Neovim์€t_Co์™€ ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„ ์ฝ”๋“œ๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

Neovim์€ UTF-8 ๋ฌธ์ž๋ฅผ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ํ–‰์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

locale | grep -E '(LANG|LC_CTYPE|LC_ALL)=(.*\.)?(UTF|utf)-?8'

๊ฒฐ๊ณผ๊ฐ€ ์—†์œผ๋ฉด UTF-8 ๋กœ์ผˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. #1601 #1858 #2386

tmux ๋˜๋Š” GNU ํ™”๋ฉด์˜ 'ESC'๊ฐ€ ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€tmux /screen์—์„œ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. (tmux/#131). ํ•ด๋‹น ํƒ€์ž„์•„์›ƒ์€ ๋‚ฎ์€ ๊ฐ’ (10-20ms)์œผ๋กœ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

.tmux.conf:

set -g escape-time 10

.screenrc:

maptimeout 10

"Vim์—์„œ ์™œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?"

๊ทธ๊ฒƒ์€ '* v * -N -u NONE`์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

  • ESC * ํ›„์— ํ‚ค๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ˆ„๋ฅด๋ฉด Vim์€ ESC๋ฅผ ALT (๋ฉ”ํƒ€) ๋Œ€์‹  ESC๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ์ปค์„œ๋ฅผ ์ž์„ธํžˆ ๊ด€์ฐฐํ•˜์ง€ ์•Š์œผ๋ฉด ์ง€์—ฐ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์ ์€ Vim์ด ALT (META) ํ‚ค ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์˜ˆ๋ฅผ ๋“ค์–ด nnoremap <M-a>'๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ALT (META) ํ‚ค - ์ฝ”๋“œ๋Š” ํ•ญ์ƒ Nvim์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋น”์—์„œ: help xterm-cursor-keys`๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์„ค์น˜ ๋ฌธ์ œ

helptags ์ƒ์„ฑ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

helptags ์ƒ์„ฑ ์‹คํŒจ Generate helptags failed '๋กœ ์žฌ์„ค์น˜๊ฐ€ ์‹คํŒจํ•œ ๊ฒฝ์šฐ ์ด์ „์— ์„ค์น˜๋œ ๋Ÿฐํƒ€์ž„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค. (๋นŒ๋“œ ์ค‘์—CMAKE_INSTALL_PREFIX`๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ / usr / local / share / nvim์ž…๋‹ˆ๋‹ค) :

# rm -r /usr/local/share/nvim

๋นŒ๋“œ ๋ฌธ์ œ

์ผ๋ฐ˜์ ์ธ ๋นŒ๋“œ ๋ฌธ์ œ

`make distclean && make '๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์‹คํŒจํ•œ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๋ฐฐ์ œํ•˜์‹ญ์‹œ์˜ค.

ํ”„๋ก์‹œ ๋ฌธ์ œ # 2482

์ปดํ“จํ„ฐ๊ฐ€ ๋„คํŠธ์›Œํฌ ํ”„๋ก์‹œ ๋’ค์— ์žˆ๊ณ  ์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ :

์˜ค๋ฅ˜: ์ข…์†์„ฑ ์„ค์น˜ ์‹คํŒจ: https://rocks.moonscript.org/penlight-1.3.2-2.rockspec ํŒŒ์ผ ๊ฐ€์ ธ ์˜ค๊ธฐ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: ๋‹ค์šด๋กœ๋“œ ์‹คํŒจ http://stevedonovan.github.io/files/penlight-1.3.2-core.zip

์ด๋Š” https_proxy ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (cURL์˜ ๊ฒฝ์šฐ)๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

local.mk์˜ ์„ค์ •์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CMake ์บ์‹œ๋Š” ์„ค์ •์„ ๋นŒ๋“œํ•˜๊ธฐ ๋•Œ๋ฌธ์— local.mk ์„ ์ˆ˜์ • ํ•œ ํ›„์— rm -r build && make ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

CMake ์˜ค๋ฅ˜

configure_file ํŒŒ์ผ ๊ตฌ์„ฑ ๋ฌธ์ œ

์•„๋งˆ๋„ ๊ถŒํ•œ ๋ฌธ์ œ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฃจํŠธ ์‚ฌ์šฉ์ž๋กœ make๋ฅผ ์‹คํ–‰ ํ•œ ๋‹ค์Œ ๋‚˜์ค‘์— ๊ถŒํ•œ์ด ์—†๋Š” make๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด rm -rf build๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ ํ•˜์‹ญ์‹œ์˜ค.

`์ ์ ˆํ•œ Lua ํ†ต์—ญ์ž๊ฐ€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜๋‹ค. '

์ด๊ฒƒ์€ ๋กœ์ปฌ LuaRocks ์„ค์น˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์ถ•ํ•˜๊ธฐ ์ „์— unset์„ ํ†ตํ•ด LUA_PATH์™€ LUA_CPATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ•ด์ œ ํ•˜์‹ญ์‹œ์˜ค.

Lua ํŒจํ‚ค์ง€

๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ํ•„์š”ํ•œ Lua ํŒจํ‚ค์ง€๋Š” LuaRocks (CMake๊ฐ€ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ)์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์„ค์น˜ ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • LuaRocks ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -'unzip'ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, LuaRocks๋Š” Warning : Manifest ๊ฒ€์ƒ‰ ์‹คํŒจ : Manifest๋กœ๋“œ ์‹คํŒจ : Manifest ํŒŒ์ผ ์ถ”์ถœ ์‹คํŒจ ์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ๋ณด๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • CDPATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋นŒ๋“œ๋ฅผ ๋ฐฉํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ make๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์„ค์ •์„ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด, LuaRocks ๋ฏธ๋Ÿฌ๋Š” ๋‹ค์Œ ๋‚ด์šฉ์œผ๋กœ .deps / usr / etc / luarocks / config-5.1.lua ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :

rocks_servers={ 
 "http://luarocks.giga.puc-rio.br/" 
}

๊ทธ ํ›„์— `make cmake '๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

์œ„์™€ ๊ฐ™์ด ์‹คํŒจํ•˜๋ฉด ํ•ญ์ƒ ๋‹ค์Œ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€ ์ค‘ ์ผ๋ถ€๋Š” ๋ฐ˜๋“œ์‹œ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์ž์ฒด ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์„ค์น˜ ํ•œ ๋ฒ„์ „์ด ๋ฐ˜๋“œ์‹œ Neovim๊ณผ ์ž‘๋™ํ•˜๋„๋ก ํ…Œ์ŠคํŠธ ๋˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋””์ž์ธ

RPC ์šฉ JSON์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  • JSON์€ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์—†์Šต๋‹ˆ๋‹ค.
  • JSON ์‚ฌ์–‘์ด ๋ชจํ˜ธ ํ•ฉ๋‹ˆ๋‹ค : http://seriot.ch/parsing_json.php

์™œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  VimL์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Lua๋ฅผ ์„ ํƒ ํ–ˆ์Šต๋‹ˆ๊นŒ?

Lua๋Š” ๋งค์šฐ ์ž‘์€ ์–ธ์–ด์ด์ง€๋งŒ ํŽธ์ง‘๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ VimL๊ณผ ๊ฐ™์€ ์–ธ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Python์ด๋‚˜ Ruby์™€ ๊ฐ™์€ ์–ธ์–ด๊ฐ€ ๋ฃจ์•„์— ๋น„ํ•ด ๊ฐ–๋Š” ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๊ฑฐ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ์ด์ง€๋งŒ, Lua๋ฅผ VimL ๋Ÿฐํƒ€์ž„์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ฒœ ์ค„์˜ C ์ค„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ์š”์†Œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

Lua์— ๋Œ€ํ•œ ์ด ๊ธฐ์‚ฌ๋„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

Lua์™€ VimL์€ ๋‹ค๋ฅธ ์˜๋ฏธ๋ก ์„ ๊ฐ€์ง„ ์„œ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด์ด๋‹ค. Lua๋Š” VimL์˜ ๋Ÿฐํƒ€์ž„์œผ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

Lua๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Neovim์„ ์™„๋ฒฝํ•˜๊ฒŒ ์Šคํฌ๋ฆฝํŠธํ™” ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„์ด๋””์–ด ์ž…๋‹ˆ๋‹ค. Vim์— ๋Œ€ํ•œ Lua ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‹ฌ๋ฆฌ, ์ด ์ƒˆ๋กœ์šด ๊ตฌํ˜„์€ ๊ตฌ๋ฌธ ๊ทœ์น™์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ API์™€ ํ•จ๊ป˜ VimL๊ณผ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ƒ์„ฑ ๋œ ์ฝ”๋“œ๊ฐ€ ์ƒˆ๋กœ์šด Lua API๋ฅผ ๋Œ€์ƒ์œผ๋กœ VimL-to-Lua ๋ณ€ํ™˜๊ธฐ๊ฐ€ ๊ตฌํ˜„ใ…Š๋ฉ๋‹ˆ๋‹ค.

VimL์„ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  VimL์„ Lua๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋А๋ฆฌ์ง€๋Š” ์•Š์Šต๋‹ˆ๊นŒ?

๊ฐ€์žฅ ๋น ๋ฅธ ์Šคํฌ๋ฆฝํŒ… ๋Ÿฐํƒ€์ž„ โ€‹โ€‹LuaJIT๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์–ธ์–ด๋ฅผ ํŒŒ์‹ฑํ•˜๋ฉด ์•ฝ๊ฐ„์˜ ์˜ค๋ฒ„ ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ Vimscript๊ฐ€ ๋„ˆ๋ฌด ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ๋น„๊ตํ•  ๋•Œ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋” ๋นจ๋ฆฌ ์‹คํ–‰๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

** ์—…๋ฐ์ดํŠธ (2016) : ** PR # 243์€ VimL-to-Lua ๋ฒˆ์—ญ๊ธฐ๋ฅผ ๊ตฌํ˜„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ์ˆ ์ ์ธ ๊ด€์‹ฌ์— ์˜ํ•ด ๋ฌด๊ธฐํ•œ ์ฐจ๋‹จ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ™๋ณด๋ฌผ์˜ ๋Œ€๋ถ€๋ถ„์€ ์žฌ์‚ฌ์šฉ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (typval_T /vim_to_object refactor์™€ `eval. c 'refactor).

ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž‘์„ฑ์ž๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ Vimscript์—์„œ Lua๋กœ ์ด์‹ ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๊นŒ?

Vimscript๋ฅผ ๋ฌดํ•œ์ • ์ง€์›ํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ? (# 1152)

Google์€ ํ…์ŠคํŠธ ํŽธ์ง‘ ์ž‘์—…์„ ์œ„ํ•œ ๊ฐ€์น˜์žˆ๋Š” DSL์ธ Vimscript๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ ํ•  ์–ด๋– ํ•œ ์ด์œ ๋„ ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Vimscript ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ๊ธฐ์กด Vim ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋Œ€๋Ÿ‰ ์ด์†ก๋ณด๋‹ค ๋น„์šฉ์ด ์ ๊ฒŒ ๋“ญ๋‹ˆ๋‹ค.

Vimscript์—์„œ Lua ๋กœ์˜ ์ด์‹์€ ์•„๋ฌด๊ฒƒ๋„ ์–ป์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. Neovim์€ ์ด๋ฏธ ์ˆ˜์ฒœ ๊ฐœ์˜ Vim ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์‚ฌ์šฉ ๋œ ์ž‘์—…์„ ํ™œ์šฉํ•˜๊ณ 

  • ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ํ†ตํ•ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด Vim * ์„ ๊ฐ•์กฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ