"젠장! 이제 Vim을 사용해야 합니다."

9055 단어 bashvimdevopslinux

어색한 순간



일부 클라우드 콘솔 셸에 도착했거나 ssh 적절한 flags 없이 다른 호스트로 이동하여 X11 forwarding 없는 상태가 되어 gedit 실행을 시도할 때 Can't open display 메시지가 표시된다고 가정해 보겠습니다. . Vim 을 사용해야 합니다.

날 믿어. 우리는 모두 거기에 있었습니다.



다른 Vim 칭찬 게시물이 아닙니다.



오해하지 마세요 저는 실제로 VIM을 좋아합니다!
그것에 대한 나의 이야기는 꽤 표준적이라고 생각합니다. 내가 물리학 학부생이었을 때, 나의 첫 번째 프로그래밍 관련 수업은 bash , 이 고대matlab 클론 octave 및 좋은 옛날C 이었습니다.
문제는 텍스트 파일 편집을 위해 Vim을 포함하여 모든 것에 터미널을 사용할 것으로 예상된다는 것입니다. 처음에는 힘들었지만 결국 Vim 팬이 되었고 지금까지도 일상 업무에 Vim을 사용하고 있습니다(하지만 모든 업무에 사용하는 것은 아닙니다!).

저는 인정해야 합니다: 요즘 Vim이 신비한 지식과 같다는 것도 멋지고, 모든 동료가 검색 교체와 같은 작업을 수행하는 방법 또는 무엇이든 하는 방법EXIT IT을 알려주기 위해 찾아오는 것이 재미있습니다.

여전히 나는 일상 업무에 Vim을 사용하도록 누군가를 설득할 계획이 없으며, 거기에는 많은 이유가 있습니다. 같은 페이지에 있는 사람의 이 스레드를 추천합니다. 사람들은 댓글에서 좋은 이유를 많이 제기했습니다.




요컨대 최신 IDE 또는 텍스트 편집기는 생산성을 높이는 데 도움이 됩니다. 더 큰 프로젝트의 경우에도 VSCode을 사용합니다.

그래도 그런 때가 있다.



어쨌든 다른 옵션이 없거나 그냥 Vim을 사용해 보고 싶을 수도 있습니다. 시작할 수 있는 매우 간단한 기본 사항은 다음과 같습니다.

설치 및 일반 및 삽입 모드 탐색과 같은 항목은 여기의 게시물에서 잘 다룹니다. 또한 저장, 실행 취소 및 다시 실행, 줄 자르기 등을 다룹니다.




또한 도구 상자에서 몇 가지 더 편리한 작업을 공유하겠습니다. 이는 기본을 약간 넘어서지만 도움이 될 수도 있습니다.

텍스트 블록 조작



시각적 모드는 텍스트 블록을 조작하는 데 도움이 됩니다.
일반 모드에서 v를 누르면 시각 모드로 전환됩니다.
여기에서 커서를 움직여 텍스트 조각을 선택할 수 있습니다. 두 가지 하위 모드도 있습니다. Shift + v는 라인 모드(전체 라인만 선택)이고 Ctrl + v는 현재 커서 위치에서 시작하는 블록을 선택하는 데 도움이 되는 블록 모드입니다. 이것은 여러 줄에서 처음 또는 마지막 몇 문자를 제거하려는 경우에 정말 유용할 수 있습니다.

찾기 및 바꾸기



찾기-바꾸기는 vim 명령으로 수행할 수 있습니다.
명령은 일반 모드에서 :를 누른 후 입력할 수 있습니다.
정확히 원하는 것에 따라 find-replace 작업을 수행하는 방법에는 여러 가지가 있지만 거의 모든 상황에 적합한 일반적인 솔루션이 있습니다.%s/expression_to_replace/new_expression/gcg 옵션은 전체 텍스트 파일을 검색한다는 의미이고, c 옵션은 바꿀 때마다 확인이 필요함을 의미합니다. 이렇게 하면 모든 교체 작업에 대해 y 또는 n를 눌러야 하므로 훨씬 더 안전합니다.

플러그인 및 기타 이단 방법



vim plugins을 사용하면 vim을 코드 완성, 보푸라기 등을 추가하는 완전한 기능의 IDE로 전환할 수 있습니다. 그러나 나는 그것을 추천하지 않을 것입니다.

개인적인 의견이지만 IDE뿐만 아니라 Vim과 같은 기능도 원한다면 최신 IDE나 텍스트 편집기를 다운로드하고 Vimkeymap extension을 설정하는 것이 좋습니다. Vim은 터미널에서 기본 편집 작업을 위한 훌륭한 기본 도구입니다. 나는 그것을 더 좋아한다.

디저트: my .vimrc



모든 vim 세션에 대한 기본 옵션 및 구성을 설정하는 데 도움이 되는 .vimrc 파일을 홈 디렉토리에 배치할 수 있습니다. 다음은 제가 세션에 항상 적용하는 몇 가지 기본 설정입니다. 여러분에게도 도움이 되었으면 합니다!

" Insert 4 spaces for a tab
set tabstop=4
" To change the number of space characters inserted
" for indentation with :retab
set shiftwidth=4
" To insert space characters whenever the tab key is pressed
set expandtab

" Color trailing whitespace and tabs
highlight ExtraWhitespace ctermbg=red guibg=red
au ColorScheme * highlight ExtraWhitespace guibg=red
au BufEnter * match ExtraWhitespace /\s\+$\|\t/
au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$\|\t/
au InsertLeave * match ExtraWhiteSpace /\s\+$\|\t/

" Map Rmw command to remove unwanted whitespaces
command Rmw :%s/\s\+$//e

" Make backspace work like most other apps, if it doesn't do so
set backspace=2

" Show line numbers :set nonu for disabling
set number

" Display indentation guides
" If the indentation characters (·, ») do not appear right that
"   means you don't have latin character encoding.
"   You can use others characters, or you can set your encoding 
"   with: :set encoding=latin1
set list listchars=tab:»·,trail:·,extends:»,precedes:«

" Tab navigation like Firefox, when you have
"   more tabs open with :tabe command
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>

" Visual autocomplete for command menu
set wildmenu

" Highlight matching braces like [{()}]
set showmatch

" Highlight all search matches
set hlsearch

syntax on



가져갈 무언가를 찾으셨기를 바랍니다. 좋은 하루 되세요!

좋은 웹페이지 즐겨찾기