잔나 테마 라이선스가 확인되지 않았습니다. 테마 옵션 페이지로 이동하여 라이선스를 확인하세요. 각 도메인 이름에 대해 단일 라이선스가 필요합니다.

Neovim에 추가된 6가지 기능은 프로그래밍 워크플로우를 크게 개선했습니다.

프로그래밍 워크플로 문제를 해결하는 데 마침내 도움을 준 Neovim 플러그인 6가지

많은 프로그래머들은 강력한 도구를 매일 사용함에도 불구하고 코드 편집기 내의 느리거나 복잡한 워크플로 때문에 어려움을 겪습니다. 네오빔은 가장 유연하고 사용자 정의가 가능한 편집기 중 하나이지만, 적절한 플러그인을 선택하지 않으면 그 잠재력을 최대한 발휘할 수 없습니다.

Neovim에 추가된 6가지 기능으로 프로그래밍 워크플로가 크게 개선되었습니다.

적절한 플러그인을 사용하면 Neovim을 단순한 텍스트 편집기에서 통합 개발 환경(IDE)으로 탈바꿈시켜 집중력을 저해하는 요소를 줄이고, 코드 작성 속도를 높이며, 탐색 및 프로젝트 관리를 개선할 수 있습니다. 핵심은 플러그인의 개수가 아니라 프로젝트에 진정으로 도움이 되는 플러그인을 파악하는 것입니다.

이 글에서는 프로그래밍 워크플로우를 개선하고 프로그래머가 일상적인 개발 과정에서 직면하는 실질적인 문제를 해결하는 데 효과적인 것으로 입증된 플러그인들을 소개합니다.

네오빔은 매우 강력하고 바로 사용할 수 있는 프로그램이지만, 플러그인을 잔뜩 설치하는 것보다는 적절한 플러그인을 선택하는 것이 네오빔의 진가를 발휘하는 비결입니다. 아래에 소개된 플러그인들은 단순히 유행을 따라가는 것이 아니라, 에디터를 충분히 사용하다 보면 (대개 예상보다 훨씬 오래 걸리겠지만) 드러나는 특정 문제들을 해결해주기 때문에 엄선한 것들입니다.

이러한 추가 기능들은 네오빔을 제대로 사용하는 데 필수적인 것은 아닙니다. 추가 기능들은 네오빔을 최대한 활용하려는 경우에만 필요한 편집기 기능에 접근할 수 있도록 해주는 역할을 합니다. 다음 섹션의 설치 단계는 네오빔용으로 널리 사용되는 추가 기능 관리자인 Lazy(LazyVim과 혼동되는 경우가 많음)를 사용한다고 가정합니다.

Atone

우선, 예상치 못한 발견이었습니다. 이렇게 간단하고 사용하기 쉬운 프로그램일 줄은 몰랐거든요 (게다가 프로그램의 완성도까지 유지하고 있었습니다). 프로그램은 다음과 같은 내용을 보여줍니다. Atone 실행 취소 기록은 트리 구조로 되어 있어 원하는 결과가 나올 때까지 반복적으로 실행 취소를 하는 대신 탐색할 수 있습니다.

분명 이런 경험을 해보셨을 겁니다. 여러 번 편집 작업을 하고 한참 작업하다가, 이전 편집이 더 나았거나 적어도 오류가 적었다는 것을 깨닫는 경우 말이죠. 이런 경우, 실행 취소는 불가능합니다. Atone은 바로 이 문제를 해결합니다. 편집 과정의 각 분기를 표시하여, 동일한 파일의 여러 기록 사이를 탐색하고 파일을 정확한 상태로 복원할 수 있도록 해줍니다.

또한 읽기:  도시별로 새로운 Facebook 친구를 찾는 방법

사용법은 매우 간단합니다. 단순히 `:Atone` 명령어를 실행하면 실행 취소 트리가 표시되는 사이드바 창이 열립니다. 화살표 키를 사용하여 분기 사이를 이동할 수 있으며, 제공되는 키보드 단축키를 사용하여 상태를 복원할 수 있습니다.

설치는 매우 간단합니다.

return {
    "XXiaoA/atone.nvim",
    cmd = "Atone",
    opts = {},
}

따르다

주석: 네오빔에 추가된 6가지 기능으로 프로그래밍 워크플로가 크게 개선되었습니다.

Go 언어가 이 엉망진창의 원인일 수도 있지만, 저는 잘 포맷된 코드가 필요합니다. 적절한 포맷은 (코드가 제대로 포맷되지 않았다면 완전히 해결되지는 않겠지만) 모든 불필요한 부분을 제거하고 변경 사항을 읽기 쉽게 만들어 줍니다.

Conform은 스스로를 가볍지만 강력한 포맷터라고 설명하며, 이 설명은 실제로 정확합니다. Conform은 전체 버퍼를 교체하는 대신 최소한의 변경 사항만 계산하여 수정이 필요한 부분만 적용합니다. 이를 통해 태그, 접기, 커서 위치 등이 유지되는데, 언뜻 간단해 보일 수 있지만 다른 방법을 시도해 보면 그 차이를 알 수 있습니다.

Conform은 LSP 포맷터의 잘못된 동작을 가로채어 올바른 증분 수정으로 변환함으로써 문제를 해결합니다. 또한, 기본 포맷터에서 지원하지 않는 범위 포맷팅도 가능합니다.

설치 및 구성을 위해 다음 명령어를 실행하십시오.

return {
    'stevearc/conform.nvim',
    opts = {
        lua = { "stylua" },
        -- Conform will run multiple formatters sequentially
        python = { "isort", "black" },
        -- Use a sub-list to run only the first available formatter
        javascript = { { "prettierd", "prettier" } },
        markdown = { { "prettierd", "prettier" } },
        typescript = { "eslint_d" },
        sh = { "shfmt" },
        bash = { "shfmt" },
    },
    config = function()
        vim.api.nvim_create_user_command("Reformat", function(args)
            local range = nil
            if args.count ~= -1 then
                local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1]
                range = {
                    start = { args.line1, 0 },
                    ["end"] = { args.line2, end_line:len() },
                }
            end
            require("conform").format({ async = true, lsp_fallback = true, range = range })
        end, { range = true })

플래시

네오빔 사용은 단순히 코드를 작성하는 데에만 국한되지 않습니다. (안타깝게도) 상당 부분은 코드 사이를 탐색하는 데 소요되며, 네오빔은 특정 영역에 집중합니다. 플래시 이쪽입니다.

또한 읽기:  컴퓨터 시작 시 삐 소리가 나는 이유와 해결 방법

플래시는 기본적으로 내장된 f, F, t, T 이동 기능을 개선하여 전환 대상을 더욱 명확하고 정확하게 만들지만, 단순히 문자 간 이동에만 그치지 않습니다. 단어, 줄, 구문 노드 또는 스테레오타입으로 정의된 패턴으로 이동할 수 있도록 해줍니다.

이 함수의 가장 큰 특징은 피연산자 대기 기능과의 완벽한 통합입니다. 피연산자를 입력하고 Flash 함수를 호출한 다음, 복잡한 중간 단계 없이 원하는 위치에 피연산자를 정확하게 적용할 수 있습니다. 또한, 컨텍스트 기반 검색을 지원하여 버퍼에 따라 함수와 변수 사이를 이동할 수 있습니다.

Flash를 설치하려면 다음 단계를 따르세요.

return {
  "folke/flash.nvim",
  event = "verylazy",
  ---@type flash.config
  opts = {},
  keys = {
    { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "flash" },
    { "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "flash treesitter" },
    { "r", mode = "o", function() require("flash").remote() end, desc = "remote flash" },
    { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "treesitter search" },
    { "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "toggle flash search" },
  },
}

초소형 인라인 진단

Neovim의 tiny six 플러그인은 프로그래밍 워크플로우를 크게 개선했습니다.

네오빔에 내장된 진단 기능은 매우 유용하지만, 긴 메시지는 종종 잘려서 일부만 표시됩니다. 특히 장황한 프로그래밍 언어를 사용할 경우 이러한 현상이 더욱 심해집니다. 추가하다 이 문제는 해결되었습니다.

이 기능을 사용하면 진단 메시지를 정확하게 표시할 수 있고, 여러 줄을 지원하며, 추가적인 조치 없이도 읽기 쉽습니다. 작업 환경에서 전체 메시지를 바로 확인할 수 있어 디버깅 프로세스가 크게 간소화됩니다.

TiD를 설치하려면 다음 코드를 사용하십시오.

return {
    "rachartier/tiny-inline-diagnostic.nvim",
    event = "VeryLazy",
    priority = 1000,
    opts = {
        add_messages = {
            display_count = true,
        },
        multilines = {
            enabled = true,
            always_show = true,
        },
        show_source = {
            enabled = true,
        }
    },
}

네오깃

프로그램은 네오깃 오랫동안 설치해 놓고 실제로 사용하지는 않았는데, 습관을 바꾸기가 어렵기 때문입니다. 하지만 바로가기를 만들고 메인 Git 인터페이스로 사용하기 시작하면서 상황이 바뀌었습니다.

또한 읽기:  Netflix에서 다음 에피소드를 재생하지 않는 문제에 대한 상위 7가지 수정 사항

Neogit은 Neovim 내에서 중앙 집중식 Git 사용자 인터페이스를 제공하여 컨텍스트 전환 없이 저장소 상태 확인, 파트 추가, 변경 사항 작성, 브랜치 관리 및 충돌 해결을 가능하게 합니다. 플로팅 창으로 실행하면 시각적 초점을 유지하고 화면 공간을 너무 많이 차지하지 않도록 할 수 있습니다.

Neogit을 설치하려면 다음 단계를 따르세요.

return {
    "NeogitOrg/neogit",
    dependencies = {
        "nvim-lua/plenary.nvim",     -- required
        "sindrets/diffview.nvim",    -- optional - Diff integration
        "nvim-telescope/telescope.nvim", -- optional
    },
    opts = {
        kind = "floating",
    },
    config = true
}

바바

대부분의 사람들은 멀티태스킹에 능숙하며, 보통 한 번에 하나의 파일만 열지 않습니다. 오히려 여러 파일을 동시에 여는 경우가 많습니다. 이는 웹 브라우저에서 탭을 사용하는 것과 매우 유사합니다. 바바 이 사실은 캐시된 파일에 대한 적절한 기준을 제공합니다.

Barbar를 사용하면 탭, 아이콘, Git 상태 표시기를 재배열할 수 있으며, 이러한 요소들 간 전환 과정을 자동화하는 캐시 선택 모드도 포함되어 있습니다. 캐시 선택 모드에서는 각 탭에 문자가 할당되며, 해당 파일이 실행되는 동안에는 문자가 변하지 않습니다. 따라서 익숙해지면 파일 이름을 생각하지 않고도 바로 해당 탭으로 이동할 수 있게 됩니다(손이 뇌보다 먼저 기억하니까요).

Barbar를 설치하려면 다음 코드를 사용하세요.

return{
    {
        'romgrk/barbar.nvim',
        dependencies = {
            'lewis6991/gitsigns.nvim',
            'nvim-tree/nvim-web-devicons',
        },
        init = function() vim.g.barbar_auto_setup = false end,
        opts = {
            sidebar_filetypes = {
                ['neo-tree'] = { event = 'BufWipeout' }
            },
        },
    },
}

이러한 확장 기능들은 언뜻 보기에 특별히 주목할 만한 것이 없어 보일 수 있지만, 바로 그 점 때문에 매우 중요합니다. 각각의 확장 기능은 실행 취소 기록, 서식 지정, 탐색 및 버퍼 관리 등 일상적인 Neovim 사용에서 발생하는 작지만 지속적인 제약 사항들을 해결해 줍니다. 이러한 확장 기능들을 함께 사용하면 Neovim을 단순히 사용하는 것을 넘어 그 잠재력을 최대한 활용할 수 있게 됩니다.

네오빔에서 적절한 플러그인을 선택하는 것은 지루한 프로그래밍 경험과 원활하고 효율적인 작업 환경 사이의 차이를 만들 수 있습니다. 불필요한 복잡성 없이 생산성을 높이려면 진정으로 필요한 기능에 집중하는 것이 중요합니다.

먼저 제한된 수의 플러그인을 사용해보고 작업 흐름에 미치는 영향을 평가한 다음, 균형 잡히고 편안한 프로그래밍 환경에 도달할 때까지 설정을 점진적으로 조정하십시오.

맨 위로 이동 버튼