<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vim on kastori</title><link>http://blog.kastori.dev/tags/vim/</link><description>Recent content in Vim on kastori</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Fri, 22 May 2026 00:00:00 +0900</lastBuildDate><atom:link href="http://blog.kastori.dev/tags/vim/index.xml" rel="self" type="application/rss+xml"/><item><title>vim 대신 Neovim + LazyVim 세팅한 기록</title><link>http://blog.kastori.dev/til/2026-05-22-lazyvim-setup/</link><pubDate>Fri, 22 May 2026 00:00:00 +0900</pubDate><guid>http://blog.kastori.dev/til/2026-05-22-lazyvim-setup/</guid><description>&lt;p&gt;터미널을 새로 세팅하면서 &lt;code&gt;vim&lt;/code&gt; 자리에 Neovim을 넣었다. 서버에 접속하거나 터미널에서 파일을 열어야 할 때, 그냥 &lt;code&gt;vim&lt;/code&gt;을 쓰면 되는데 어차피 쓸 거 제대로 세팅해두는 게 낫겠다 싶었다. LazyVim은 Neovim 위에 올라가는 사전 구성 세팅인데, 처음부터 LSP·자동완성·파일 검색이 다 들어있어서 설정 없이 바로 쓸 수 있다.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;이전 글: &lt;a class="link" href="http://blog.kastori.dev/til/2026-05-21-ghostty-terminal-setup/" &gt;Ghostty로 터미널 환경 다시 세팅한 기록&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="설치"&gt;&lt;a href="#%ec%84%a4%ec%b9%98" class="header-anchor"&gt;&lt;/a&gt;설치
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install neovim
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# LazyVim 스타터 템플릿&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/LazyVim/starter ~/.config/nvim
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -rf ~/.config/nvim/.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# nvim 실행 — 첫 실행 시 플러그인 자동 설치&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nvim
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;~/.zshrc&lt;/code&gt;에 alias 추가해두면 &lt;code&gt;vim&lt;/code&gt;, &lt;code&gt;vi&lt;/code&gt; 입력해도 Neovim이 실행된다:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-zsh" data-lang="zsh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;vim&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nvim&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;vi&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nvim&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;alias&lt;/span&gt; &lt;span class="nv"&gt;vimdiff&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nvim -d&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="vim-기본-모드"&gt;&lt;a href="#vim-%ea%b8%b0%eb%b3%b8-%eb%aa%a8%eb%93%9c" class="header-anchor"&gt;&lt;/a&gt;Vim 기본 모드
&lt;/h2&gt;&lt;p&gt;Neovim은 Vim 기반이라 &lt;strong&gt;모드&lt;/strong&gt; 개념이 있다. 처음엔 낯설지만 이게 핵심이다.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;모드&lt;/th&gt;
 &lt;th style="text-align: left"&gt;진입&lt;/th&gt;
 &lt;th style="text-align: left"&gt;역할&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Normal&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;기본 모드. 이동·복사·삭제 명령&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Insert&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;텍스트 직접 입력&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Visual&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;v&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;범위 선택&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;Command&lt;/td&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;:&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;저장·종료·치환&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;처음 쓸 때 가장 많이 막히는 게 &amp;ldquo;어떻게 닫아?&amp;rdquo; 인데, 이것만 기억하면 된다:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;파일 열림 (Normal 모드)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → i 눌러서 편집
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → Esc로 Normal 복귀
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → :w 저장
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → :q 종료
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="자주-쓰는-키맵"&gt;&lt;a href="#%ec%9e%90%ec%a3%bc-%ec%93%b0%eb%8a%94-%ed%82%a4%eb%a7%b5" class="header-anchor"&gt;&lt;/a&gt;자주 쓰는 키맵
&lt;/h2&gt;&lt;h3 id="저장--종료"&gt;&lt;a href="#%ec%a0%80%ec%9e%a5--%ec%a2%85%eb%a3%8c" class="header-anchor"&gt;&lt;/a&gt;저장 / 종료
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;:w&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;저장&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;:q&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;종료&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;:wq&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;저장 후 종료&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;ZZ&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;저장 후 종료 (단축)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;:q!&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;저장 없이 강제 종료&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="이동"&gt;&lt;a href="#%ec%9d%b4%eb%8f%99" class="header-anchor"&gt;&lt;/a&gt;이동
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;h j k l&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;좌 하 상 우&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;w&lt;/code&gt; / &lt;code&gt;b&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;단어 앞으로 / 뒤로&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;0&lt;/code&gt; / &lt;code&gt;$&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;줄 맨 앞 / 맨 끝&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;gg&lt;/code&gt; / &lt;code&gt;G&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;파일 맨 위 / 맨 아래&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;Ctrl + d/u&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;반 페이지 아래 / 위 스크롤&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="편집"&gt;&lt;a href="#%ed%8e%b8%ec%a7%91" class="header-anchor"&gt;&lt;/a&gt;편집
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;커서 앞에서 입력 시작&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;a&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;커서 뒤에서 입력 시작&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;o&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;아래 줄 새로 열고 입력&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;dd&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;현재 줄 삭제&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;yy&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;현재 줄 복사&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;붙여넣기&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;u&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;실행 취소&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;Ctrl + r&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;다시 실행&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;cw&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;단어 지우고 입력 모드 진입&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="검색"&gt;&lt;a href="#%ea%b2%80%ec%83%89" class="header-anchor"&gt;&lt;/a&gt;검색
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;/검색어&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;검색&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;n&lt;/code&gt; / &lt;code&gt;N&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;다음 / 이전 결과&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;:%s/old/new/g&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;파일 전체 치환&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="lazyvim-단축키"&gt;&lt;a href="#lazyvim-%eb%8b%a8%ec%b6%95%ed%82%a4" class="header-anchor"&gt;&lt;/a&gt;LazyVim 단축키
&lt;/h2&gt;&lt;p&gt;LazyVim은 &lt;code&gt;&amp;lt;Space&amp;gt;&lt;/code&gt;를 리더 키로 쓴다. &lt;code&gt;&amp;lt;Space&amp;gt;&lt;/code&gt;를 누르면 사용 가능한 키 목록이 팝업으로 뜬다.&lt;/p&gt;
&lt;h3 id="파일-찾기--검색"&gt;&lt;a href="#%ed%8c%8c%ec%9d%bc-%ec%b0%be%ea%b8%b0--%ea%b2%80%ec%83%89" class="header-anchor"&gt;&lt;/a&gt;파일 찾기 / 검색
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;&amp;lt;Space&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;최근 파일 목록&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;ff&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;파일 이름으로 검색 (Telescope)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;fg&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;파일 내용으로 검색 (ripgrep)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;fb&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;열린 버퍼 목록&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;e&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;파일 탐색기 열기&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;파일을 이름으로 빠르게 찾거나, 특정 텍스트가 어느 파일에 있는지 검색할 때 &lt;code&gt;&amp;lt;Space&amp;gt;ff&lt;/code&gt;, &lt;code&gt;&amp;lt;Space&amp;gt;fg&lt;/code&gt;를 제일 많이 쓰게 된다.&lt;/p&gt;
&lt;h3 id="git"&gt;&lt;a href="#git" class="header-anchor"&gt;&lt;/a&gt;Git
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;gg&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;LazyGit 열기&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;gd&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Git diff&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="코드-탐색-lsp"&gt;&lt;a href="#%ec%bd%94%eb%93%9c-%ed%83%90%ec%83%89-lsp" class="header-anchor"&gt;&lt;/a&gt;코드 탐색 (LSP)
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;gd&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;정의로 이동&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;gr&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;참조 목록&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;K&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;hover 문서&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;ca&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;코드 액션&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;rn&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;이름 변경 (rename)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="창-분할--버퍼"&gt;&lt;a href="#%ec%b0%bd-%eb%b6%84%ed%95%a0--%eb%b2%84%ed%8d%bc" class="header-anchor"&gt;&lt;/a&gt;창 분할 / 버퍼
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;|&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;수직 분할&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;-&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;수평 분할&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;Ctrl + h/j/k/l&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;분할된 창 사이 이동&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;lt;Space&amp;gt;bd&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;현재 버퍼 닫기&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="알아두면-편한-키맵"&gt;&lt;a href="#%ec%95%8c%ec%95%84%eb%91%90%eb%a9%b4-%ed%8e%b8%ed%95%9c-%ed%82%a4%eb%a7%b5" class="header-anchor"&gt;&lt;/a&gt;알아두면 편한 키맵
&lt;/h2&gt;&lt;h3 id="전체-선택--복사"&gt;&lt;a href="#%ec%a0%84%ec%b2%b4-%ec%84%a0%ed%83%9d--%eb%b3%b5%ec%82%ac" class="header-anchor"&gt;&lt;/a&gt;전체 선택 / 복사
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ggVG 전체 선택 (Visual 모드)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ggyG 전체 복사
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;gg&lt;/code&gt;로 맨 위, &lt;code&gt;V&lt;/code&gt;로 줄 단위 선택, &lt;code&gt;G&lt;/code&gt;로 맨 아래까지. 선택 후 &lt;code&gt;y&lt;/code&gt;로 복사, &lt;code&gt;d&lt;/code&gt;로 삭제.&lt;/p&gt;
&lt;h3 id="텍스트-오브젝트--가장-강력한-기능"&gt;&lt;a href="#%ed%85%8d%ec%8a%a4%ed%8a%b8-%ec%98%a4%eb%b8%8c%ec%a0%9d%ed%8a%b8--%ea%b0%80%ec%9e%a5-%ea%b0%95%eb%a0%a5%ed%95%9c-%ea%b8%b0%eb%8a%a5" class="header-anchor"&gt;&lt;/a&gt;텍스트 오브젝트 — 가장 강력한 기능
&lt;/h3&gt;&lt;p&gt;vim에서 &amp;ldquo;단어 안&amp;rdquo;, &amp;ldquo;괄호 안&amp;rdquo; 같은 범위를 지정해서 한 번에 편집할 수 있다.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;ciw&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;단어 지우고 입력 모드 (Change Inner Word)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;diw&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;단어 삭제&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;yi&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;큰따옴표 안 내용 복사&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;di&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;큰따옴표 안 내용 삭제&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;ci(&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;괄호 안 내용 지우고 입력&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;da(&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;괄호 포함해서 삭제&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;yip&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;현재 단락 복사&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;c&lt;/code&gt; = 지우고 입력, &lt;code&gt;d&lt;/code&gt; = 삭제, &lt;code&gt;y&lt;/code&gt; = 복사&lt;br&gt;
&lt;code&gt;i&lt;/code&gt; = 안쪽만, &lt;code&gt;a&lt;/code&gt; = 감싸는 것 포함&lt;/p&gt;
&lt;h3 id="기타-유용한-것들"&gt;&lt;a href="#%ea%b8%b0%ed%83%80-%ec%9c%a0%ec%9a%a9%ed%95%9c-%ea%b2%83%eb%93%a4" class="header-anchor"&gt;&lt;/a&gt;기타 유용한 것들
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;키&lt;/th&gt;
 &lt;th style="text-align: left"&gt;동작&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;*&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;커서 위 단어 검색&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;%&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;매칭 괄호로 이동&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;들여쓰기 / 내어쓰기&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;Ctrl + o&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;이전 위치로 (뒤로 가기)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;Ctrl + i&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;다음 위치로 (앞으로 가기)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;.&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;마지막 명령 반복&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;code&gt;~&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;대소문자 전환&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;.&lt;/code&gt;(점)은 처음엔 잘 모르고 지나치는데 실제로 꽤 자주 쓰게 된다. 예를 들어 &lt;code&gt;ciw&lt;/code&gt;로 단어 바꾼 다음 다른 단어에서 &lt;code&gt;.&lt;/code&gt;을 누르면 같은 동작이 반복된다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="macos-클립보드-연동"&gt;&lt;a href="#macos-%ed%81%b4%eb%a6%bd%eb%b3%b4%eb%93%9c-%ec%97%b0%eb%8f%99" class="header-anchor"&gt;&lt;/a&gt;macOS 클립보드 연동
&lt;/h2&gt;&lt;p&gt;Neovim에서 &lt;code&gt;yy&lt;/code&gt;로 복사한 내용이 &lt;code&gt;Cmd+V&lt;/code&gt;로 붙여넣기가 안 될 때가 있다. Neovim 내부 클립보드와 macOS 클립보드가 분리돼 있기 때문이다.&lt;/p&gt;
&lt;p&gt;LazyVim은 기본으로 연동이 되어 있지만, 안 된다면 &lt;code&gt;~/.config/nvim/lua/config/options.lua&lt;/code&gt;에 추가:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;vim.opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clipboard&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;unnamedplus&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;이걸 설정하면 &lt;code&gt;yy&lt;/code&gt;로 복사한 내용을 바로 &lt;code&gt;Cmd+V&lt;/code&gt;로 다른 앱에 붙여넣을 수 있다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="플러그인-추가"&gt;&lt;a href="#%ed%94%8c%eb%9f%ac%ea%b7%b8%ec%9d%b8-%ec%b6%94%ea%b0%80" class="header-anchor"&gt;&lt;/a&gt;플러그인 추가
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;~/.config/nvim/lua/plugins/&lt;/code&gt; 안에 &lt;code&gt;.lua&lt;/code&gt; 파일을 만들면 된다. LazyVim이 자동으로 인식해서 설치한다.&lt;/p&gt;
&lt;p&gt;예시로 Markdown Preview 플러그인을 추가했다. &lt;code&gt;.md&lt;/code&gt; 파일 편집 중에 브라우저로 미리보기를 띄워주는 플러그인이다:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;-- ~/.config/nvim/lua/plugins/markdown-preview.lua&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;iamcco/markdown-preview.nvim&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ft&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;markdown&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;build&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cd app &amp;amp;&amp;amp; yarn install&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;init&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;vim.g&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mkdp_filetypes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;markdown&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;vim.g&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mkdp_auto_start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;vim.g&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mkdp_auto_close&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;end&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;lt;leader&amp;gt;mp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;lt;cmd&amp;gt;MarkdownPreviewToggle&amp;lt;cr&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Markdown Preview&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;저장하고 nvim 재시작하면 자동으로 설치된다. &lt;code&gt;&amp;lt;Space&amp;gt;mp&lt;/code&gt;로 토글.&lt;/p&gt;
&lt;p&gt;파일 구조:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;~/.config/nvim/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─ lua/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─ plugins/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├─ example.lua # LazyVim 기본 예제
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─ markdown-preview.lua # 추가한 플러그인
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="마치며"&gt;&lt;a href="#%eb%a7%88%ec%b9%98%eb%a9%b0" class="header-anchor"&gt;&lt;/a&gt;마치며
&lt;/h2&gt;&lt;p&gt;vim 쓸 일이 생길 때마다 &lt;code&gt;:q&lt;/code&gt; 를 어떻게 치는지 검색했던 기억이 있다. LazyVim을 세팅해두니까 그냥 &lt;code&gt;vi 파일명&lt;/code&gt; 하나로 열고, &lt;code&gt;&amp;lt;Space&amp;gt;ff&lt;/code&gt;로 파일 찾고, 편집 후 &lt;code&gt;:wq&lt;/code&gt;로 나오는 흐름이 자연스러워졌다. 모드 개념만 한 번 이해하면 나머지는 쓰다 보면 손에 익는다.&lt;/p&gt;</description></item></channel></rss>