일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- const
- Append
- FOR
- input
- createElement
- htmlFor
- Let
- VAR
- 학습법 #집중력
- boolean
- appendChild
- Openlayers
- createtextnode
- Today
- Total
Atomic Habits
Vim 사용법 본문
- vim 검색 -> Download -> MS-Windows -> gVim80.zip ( vim과 gvim이 함께 설치됨)
(리눅스의 text 기반 편집기 vim, GUI 요소 들어간 gVim)
<Self-installing executable gvim##.exe gvim82.exe (ftp)>
- :version : 버전 확인
:version
:pwd //현재 커렌트 디렉토리 위치 확인
리눅스 vi 편집기를 사용하다보면, visual studio와는 다르게 불편한 점이 있다.
리눅스에서는 기본 default 값이 아닌, 사용자 편의를 위해 몇 가지 설정을 변경할 수 있다.
1. 문법 강조 (Syntax highlighting)
2. 자동 들여쓰기 (Auto Indent)
3. 줄번호 (Line Number)
4. vi 편집기 색상 변경 (Color Scheme)
5. tab키 사이즈 조절 (Tab Adjust)
6. 괄호 매칭 (Parenthesis Matching)
이 외에도 여러가지 있지만, 내가 필요했던 기능만 정리해볼까 한다.
* 설정방법
※ 이 방법은 /home directory에서 실행해야 모두 적용가능 ※
① home directory 가기
/home directory로 바로 가는 명령어
soohwankim@soohwankim-VirtualBox:~$ cd /
② vi .vimrc
home directory로 갔으면, bash에 vi .vimrc를 쳐서 들어간다.
soohwankim@soohwankim-VirtualBox:~$ vi .vimrc
이전에 따로 설정한 것이 없다면 아마 빈 화면으로 나올 것이다.
③ vi .vimrc 수정
아래에 써져 있는 코드 중 원하는 기능에 해당하는 코드를 작성하고 저장하면 된다.
1 set number -> 우측 설명들 삭제해야 함 " 라인 번호를 붙임"
2 set tabstop=4 " 탭문자는 4컬럼 크기로 보여주기"
3 set shiftwidth=4 "문단이나 라인을 쉬프트할 때 4컬럼씩 하기"
4 set autoindent " 자동 들여쓰기"
5 syntax on " 적절히 syntax에 다라 하이라이팅 해주기"
6 set cindent " c언어 자동 들여쓰기"
7 set title " 타이틀바에 현재 편집중인 파일을 표시"
8 set showmatch " 매치되는 괄호의 반대쪽을 보여줌"
9 set textwidth=79 " 만약 79번째 글자를 넘어가면 다음행으로"
10 set smartindent " 좀 더 똑똑한 들여쓰기를 위한 옵션"
11 set ts=4 " 탭 간격 조절"
12 colorscheme desert " vi 편집기 jellybeans 테마로 변경"
이 외에도 여러가지 색상을 설정 가능하다.
다른 색상으로 하고 싶다면 :colorscheme '색상 테마명' 으로 해주면 된다.
ex) :colorscheme desety, :colorscheme darkblue etc...
:edit $MYVIMRC //vimrc 편집
cd C:\Users\Pikabu\Documents\Vimfiles\Working : 이후 w 저장시 위의 위치에 파일이 저장된다.
:vi ~/.vimrc : 설정해둔 파일 열기
- (리눅스 모드, gVim 대신 일반 Vim):! cd (홈 디렉토리로 이동) Enter + vi .vimrc
홈 디렉토리에 .vimrc가 생성되고 vi 편집기가 열릴 것이다
:e! c:\Users\ : 트리 탐색(:e .)
트리탐색 중 명령어
s : 정렬 방식
i : 파일 표시 상세
- : 상위 디렉터리 이동
i : 디렉터리 리스팅 방법 변경.
I : 배너 On / Off 토글
d : 새 디렉터리 생성, 이름 입력 가능
D : 디렉터리 또는 파일 삭제, 삭제 전 확인
R : 디렉터리 또는 파일 이름 수정
s : 정렬 순서 변경(이름, 시간, 파일 사이즈, 확장자 / 상단에 표기)
gh : dot 파일 리스팅에서 추가 /제외 토글
o : 커서 위치의 디렉터리 또는 파일을 상하 스플릿 된 새 창으로 띄우기
v : 커서 위치의 디렉터리 또는 파일을 좌우 스플릿 된 새 창으로 띄우기
t : 커서 위치의 디렉터리 또는 파일을 새 탭으로 띄우기
u : 최근에 방문한 디렉터리로 이동 (뒤로 가기)
U : u 와 반대로 이동
% : 현재 디렉터리에 새 파일 열기, 파일 이름 입력
mb : 현재 디렉터리를 북마크
mB : 북마크에서 1번부터 삭제 (4번 북마크를 삭제하고 싶다면 4mB)
qb : 북마크된 디렉터리 리스팅
gb : 북마크 디렉터리로 이동 (4번으로 이동하고 싶다면 4gb)
출처: https://pikabu.tistory.com/79 [피카부]
w
다음 단어의 첫 글자로 이동
b
이전 단어의 첫 글자로 이동
^
그 행의 첫 글자로 이동 Home키와 동일
$
그 행의 마지막 글자로 이동 End키와 동일
gg
문서의 맨 첫 행으로 이동
G
문서의 맨 마지막 행으로 이동
:n
n행으로 이동 (여기서 n은 숫자임)
출처: https://lift2k.tistory.com/entry/vi-가장-많이-사용되는-vim-vi-명령어 [DoubleSH]
:e [tab] : 저장될 곳의 ㅇ위치
모드 전환
https://www.youtube.com/watch?v=GWo_MxMlJJ4
편집
키기능
dd | 현재 줄 잘라내기 |
yy | 현재 줄 복사하기 |
p | 붙여넣기 |
u | 실행취소 (Undo) |
ctrl + r | 재실행 (Redo) |
v | Visual모드 |
y | 복사 |
c | 잘라내기 |
ㅇㄹ
최상단 커서 깜빡임 : 명령모드
-> i -> 입력모드(글 편집가능)
-> ESC : 명령모드 전환(커서 이동 hjkl, 편집 가능)
-> (명령모드) a : 다음칸으로 이동 + 입력모드 전환 (A는 줄의 끝에)
-> (명령모드) o : 다음줄으로 이동 + 입력모드 전환 (O는 위에 새 줄 생성)
-> (명령모드) shift + i : 줄의 처음 이동 + 입력모드
-> (명령모드) shift + a : 줄의 끝 이동 + 입력모드
-> (명령모드) cw : 단어 삭제 + 입력모드
- (명령모드) shift + $ : 행 끝 이동 + 명령모드 유지
- (명령모드) shift + ^ : 행 처음 이동 + 명령모드 유지
- (입력모드) shift + v : 여러 행 선택( 비주얼 모드 )
- (명령모드) shift + v(행 선택 후) + y(복사) + p(붙여넣기)
- (명령모드) shift + v(행 선택 후) + d(삭제)
- (명령모드) yy (해당 행 복사) + 이동 후 + p(붙여넣기) : 한 행 복사
- (명령모드) 4 + yy (아래 4행 복사) + 이동 후 + p(붙여넣기) : 4행 복사
- (명령모드) +p : 외부 복사문 붙여넣기, p : vim 내부 삭제 내용(버퍼) 붙여넣기
- (명령모드) dd : 한행 삭제 // 3 + dd : 아래 3행 제거
- (명령모드) ctrl + f : page_down 큰 화면 이동
- (명령모드) ctrl + b : page_up 큰 화면 이동
- (명령모드) shift + j : 아래 줄 끌어올리기
- (명령모드) shift + d : 한 행에서 커서 이후 삭제
- (명령모드) i(입력모드 전환) + shift + insert : 외부 복사 내용 붙여넣기
- (명령모드) shift + v(행 선택 후) + '=' : 행 정렬
- (명령모드) 괄호( '(',')','{','}' )위에 커서 + = + % : 괄호 안 정렬
- (명령모드) 단어 위에 커서 + *(shift+8) : 동일한 단어 찾아서 블록
다음 찾기(n), 이전 찾기(shift+n)
- (명령모드) u : undo 되돌리기 <> ctrl+r : redo 반대로 되돌리기
- (명령모드) x : 한 글자씩 뒷문자 삭제, 6 + x : 뒤로 6글자 삭제
- (명령모드) :set paste + shift + insert : 정렬된 상태로 붙여넣기
- (명령모드) :set nopaste : paste 모드 풀어줘야 자동 들여쓰기 기능 작동
- :n,m w FILENAME : n ~ m행까지 저장되어
- % 를 눌러서 ), ], } 의 짝을 찾습니다. 다시 % 누르면 원래 괄호로 이동합니다.
- /(slush) : Line 모드
- / + 글자 입력 : 아래 찾기(블록 설정), n(다음 이동)
- ? + 글자 입력 : 위로 찾기
- ':'+숫자 : 해당 행번호로 이동
- ':'+$ : 마지막 행으로 이동
- ':' + number , nonumber : 행번호 달기, 없애기
- :%s/찾을 문자열/바꿀문자열 : 전체 찾아바꾸기
- :r test.txt : 현재 커서 위치에 파일 내용 끼워넣기
- :w : 저장
- :w test2.txt 새로 저장
주의 사항:
위의 경우 test2.txt 라는 파일이,
원본 파일인 test.txt 가 있는 디렉토리와 다른 디렉토리에 저장될 수도 있습니다.
:pwd
라는 명령을 사용하면 Vim, Vi 내부의 현재 디렉토리명을 볼 수 있습니다.
그 디렉토리에 저장되어 있을 것입니다.
- !del TEST
- :q : 현재창 빠져나가기
- (리눅스 cmd) vi test.txt : gVim으로 파일 열기
- :wq : 저장 후 종료
- :q! : 저장 없이 종료
- :! + 리눅스 명령어(컴파일, 바이너리 실행 등 가능)
- :!ls -al : 파일 목록 보기
찾기 / 찾아 바꾸기 ( https://techlog.gurucat.net/297 )
:%s/\\//g \를 찾는다면 \라는 특수기호 앞에 \를 붙여서 표시한다.
1. 커서를 ---> 로 표시된 줄에 가져다 놓습니다.
2. :s/thee/the 를 입력한 후 <ENTER> 를 칩니다.
이 명령은 그 줄에서 처음으로 발견된 것만 바꾼다는 것에 주의하십시오
3. 이번에는 :s/thee/the/g 를 입력합니다.
이는 그 줄 전체(globally)를 치환한다는 것을 의미합니다.
---> thee best time to see thee flowers is in thee spring.
4. 두 줄 사이의 모든 문자열에 대해 치환하려면 다음과 같이 합니다,
:#,#s/old/new/g #,# 는 두 줄의 줄번호를 뜻합니다.
:%s/old/new/g 파일 전체에서 발견된 모든 것을 치환하는 경우입니다.
어떤 줄에 처음 등장하는 old를 new로 바꾸려면 :s/old/new
한 행에 등장하는 모든 old를 new로 바꾸려면 :s/old/new/g
두 줄 #,# 사이에서 치환을 하려면 :#,#s/old/new/g
파일 내의 모든 문구를 치환하려면 :%s/old/new/g
바꿀 때마다 확인을 거치려면 'c'를 붙여서 :%s/old/new/gc
---------------------------------------------
:%s/old/new/gc 의 옵션에서 명령어
y: 현재 focus 된 'foo'를 'bar'로 바꾸고 다음 'foo'로 건너뛰어 focus를 맞춘다.
n: 현재 focus 된 'foo'를 'bar'로 바꾸지 않고 다음 'foo'로 건너뛰어 focus를 맞춘다.
a: 더이상 묻지 않고, 모든 'foo'를 'bar'로 바꾼다.
q: 바꾸는 것을 그만 둔다.
l : 현재 focus된 'foo'를 'bar'로 바꾸고, 더이상 바꾸기를 하지 않고 그만둔다.
---------------------------------------------
1. 특정 pattern이 들어가는 line 지우기
:g/profile/d
2. 특정 pattern이 들어가 있는 line을 제외한 모든 line 지우기
:v/pattern/d
위의 방법을 사용하면 pattern으로 정의된 regular expression에 해당하는 모든 line을 제외한 모든 line이 지워진다.
:v/error\|warning\|fail/d
출처: https://sunshowers.tistory.com/77 [Sunshowers]
작업 취소
만약 현재 뭔가 글을 입력하는 '편집모드'라면 키보드의 Esc키를 눌러 명령 모드로 들어간 후,
소문자 u 를 누르면 방금 했던 작업이 취소된다. 이후 다시 편집을 계속하기 위해서는 i 키를 누르면 된다.
현재 줄에서 수정한 내용만 취소
현재 편집모드라면 키보드의 Esc키를 눌러 '명령모드'로 들어간 후,
대문자 U (Shift + u) 를 누르면, 현재 커서가 위치하고 있는 줄에서 했던 모든 작업이 취소된다.
현재 줄에서 아무리 복잡한 작업을 해도 원상태로 쉽게 돌아갈 수 있는 유용한 기능이다.
취소를 취소하기(!)
이 기능은 Vim에서만 동작한다. 위의 u 키로 취소했지만 마음이 바뀌어서, 취소하기 전으로 돌아가고 싶을 때는 Ctrl+R 키를 통해 취소를 취소할 수 있다. 이를 Redo 라고 한다.
출처: https://techlog.gurucat.net/175 [하얀쿠아의 이것저것 만들기 Blog]
GVIM을 실행후 현재 커렌트 디렉토리를 살펴보면
:pwd //현재 커렌트 디렉토리 위치 확인
보통은 GVIM이 설치되어 있는 디렉토리로 되어 있다.
:edit $MYVIMRC //vimrc 편집
맨 윗줄에 원하는 경로를 추가
cd C:\Users\Pikabu\Documents\Vimfiles\Working
이후 w 저장시 위의 위치에 파일이 저장된다.
출처: https://pikabu.tistory.com/79 [피카부]
출처:
'IT > Linux-Vim' 카테고리의 다른 글
[sed] 문자열 치환하기 (0) | 2021.12.01 |
---|---|
VI 에디터 사용법[표] (0) | 2021.12.01 |
DOS 명령어 (2) | 2021.11.08 |
리눅스 명령어 모음(유튜브) (0) | 2021.11.07 |
리눅스(우분투) 설치 및 간단 명령어 (0) | 2021.11.07 |