Neovim에서 단축키로 로그 찍기

vscode에는 turbo console log라는 익스텐션으로 단축키로 쉽게 로그를 추가했었는데, neovim을 쓰고나서 동일한 기능을 쓰고 싶어 찾다 보니 있어서 공유합니다.
2023.10.31

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