vscode에는 turbo console log라는 익스텐션으로 단축키로 쉽게 로그를 추가했었습니다.
https://marketplace.visualstudio.com/items?itemName=ChakrounAnas.turbo-console-log
vscdoe에서 ↑ 익스텐션을 매우 애용하고 있었는데, neovim을 쓰면서도 동일한 기능을 쓰고 싶었습니다.
먼가 vim 자체적으로는 매크로 만들기가 어려워 보여서 찾아보니 플러그인을 찾아서 공유합니다.
debugprint.nvim
https://github.com/andrewferrier/debugprint.nvim
사용법은 간단합니다. 어떤 변수에 커서가 올라간 상태에서 g?v
를 하면 로그가 추가되는 형태입니다.
const a = 1;
// a 에다가 커서를 올리고 g?v
console.log("DEBUGPRINT[1]: a.ts:10: a=", a)
v1.2.0 버전에서 대응하는 언어는 아래와 같으니 참고해주세요.
bash
c
cpp (C++)
cs (C#)
dart
dockerfile
go
java
javascript
lua
make
php
python
ruby
rust
sh (Sh/Bash)
typescript
vim
zsh
설치
각자 사용하는 플러그인 매니저를 사용해주세요. https://github.com/andrewferrier/debugprint.nvim#installation
저는 lazy.nvim을 사용하기 때문에 아래와 같이 설정해주었습니다.
-- log.lua
return {
"andrewferrier/debugprint.nvim",
-- NeoVim 0.8 이하는 아래 디펜던시를 추가해주세요!
-- dependencies = {
-- "nvim-treesitter/nvim-treesitter"
-- },
version = "*"
}
팁
그냥 사용해도 좋지만 약간의 커스텀을 한다면 아래처럼 포맷을 설정해줄 수도 있습니다. 이모지를 추가해주면 확실히 다른 로그랑 구분이 되어서 좋습니다.
-- log.lua
return {
"andrewferrier/debugprint.nvim",
config = function()
require("debugprint").setup({
display_counter = false,
print_tag = "🚀 ",
end,
version = "*"
}
-- console.log("DEBUGPRINT[1]: a.ts:10: a=", a) 처럼 투박했던 로그가
-- console.log("🚀 : a.ts:10: a=", a) 이모지로 보기 좋게 바꿀 수 있습니다.
자주 사용되는 단축키로는 아래와 같이 있습니다.
g?p
는 단순히 디버그 포인트 처럼 로그를 남길 수 있습니다.-
g?V, g?P
는 현재라인에 로그를 추가해서 상황에 따라 사용할 수 있습니다. -
:DeleteDebugPrints
로 추가한 로그들을 한방에 지울 수 있습니다.
마무리
만약 자기가 자주 쓰는 언어도 추가하고 싶다면 아래 파일을 잘 변경하면 될 수도 있을 것 같습니다?
https://github.com/andrewferrier/debugprint.nvim/blob/main/lua/debugprint/filetypes.lua