Neovim에서 단축키로 로그 찍기

Neovim에서 단축키로 로그 찍기

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

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

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.