Tools

    Command line mode - 라인번호, tab 간격설정, 자동들여쓰기

    코드파일을 작성할 때의 편의성을 위해 vim에서는 관련 편의기능들을 제공하는 데 그 옵션은 다음과 같다. 종류 기능 :set nu / :set nonu 각 라인에 번호를 보여줌 / 각 라인에 보여지는 번호를 지움 :set ts=(숫자) (숫자) 만큼의 크기로 tab 키의 크기를 설정함 :set ai 윗 라인에 맞춰서 자동으로 indentation을 함. ​ 1. :set nu / :set nonu - 각 라인에 번호를 보여줌 / 각 라인에 보이는 번호를 지움 이는 이전에 언급한 적이 있는 옵션이지만 다시한번 언급하고 넘어가겠다. 다음과 같이 코드파일을 열면 라인번호가 적혀있지 않아서 각각의 라인이 몇번째 라인인지 알기가 어렵다. 이 때 command line mode에서 set:nu를 입력하면 다음과 같..

    Command line mode - 파일끼워넣기, 파일일부 따로저장

    다음명령어를 사용하면 어떠한 파일에 내에 외부 파일의 내용을 끼워넣거나 파일의 일부를 다른 파일에 저장하도록 할 수 있다. 종류 기능 :r 파일명 해당하는 파일을 읽어와서 내용을 끼워넣는다. :#,#w 새로운 파일명 두 라인의 번호(#) 사이의 내용을 해당하는 파일에 저장한다. 1. :r 파일명 - 해당하는 파일을 읽어와서 커서의 위치에 내용을 끼워넣는다. 다음과 같이 작성된 part.txt 파일의 다음 내용을 main.c에 불러오고 싶다면 다음과 같이 커서가 위치한 상황에서 :r part.txt 를 입력하면 다음과 같이 part.txt의 내용을 불러와서 파일에 추가한 것을 확인할 수 있다. ​ 2. :#,#w 새로운 파일명 - 두 라인번호(#) 사이의 내용을 해당하는 파일에 저장 다음과 같은 파일에서 ..

    Command line mode - 외부명령 잠깐 수행하기

    !명령어 쉘 명령을 실행하여 그 결과를 확인하 수 있으며 enter를 치면 다시 에디터로 복귀 ​ 다음과 같이 vim 상에서 !ls -ㅣ와 같은 쉘에서 사용하는 명령어를 입력해주면 다음과 같이 잠시 쉘로 빠져나와서 해당 명령어에 대한 결과를 보여준다. 밑에 출력에서 볼 수 있듯이 enter키를 다시 입력하면 vim으로 다시 돌아갈 수 있다.

    Visual mode

    visual mode는 마치 우리가 마우스를 사용해서 어떠한 내용을 드래그하여 선택하고 해당 선택한 내용에 대해서 삭제 또는 복사 등과 같은 작업들을 사용자가 선택적으로 수행할 수 있도록 해주는 모드 이다. ​ command mode에서 사용할 수 있는 모드의 종류는 아래와 같다. 1. v를 입력하여 visual mode 2. V를 입력하여 visual line mode 3. ctrl + v 를 입력하여 visual block mode 각각의 차이는 다음과 같다. ​ 1. v (visual mode) v를 누르면 visual mode로 진입을 하게 되고 다음과같이 영어방향키를 이용해서 원하는 영역을 선택할 수 있다. 영역을 선택하는 단위는 글자단위이며 이 선택한 내용을 통해 x 명령을 통한 삭제 또는 y..

    Command-line Mode - 창을 나눠서 다른 파일 열기

    vim은 창을 분할하여서 동시에 여러개의 파일을 열어서 작업하는 것이 가능한데 이와 관련된 명령어는 다음과 같다. 종류 기능 :vs 파일명 수직으로 창을 나눈 후, 해당파일을 불러온다. :split 파일명 수평으로 창을 나눈 후, 해당파일을 불러온다. ctrl + ww 분할된 창들간의 이동 1. :vs 파일명 - 수직으로 창을 나눈 후, 해당파일을 불러온다. 다음의 디렉터리에서 우선 order.c 파일을 열어보도록 하자. 다음과 같이 파일을 연 상태에서 :vs order.h를 입력하면, 다음과 같이 파일을 수직으로 창이 나눠져 각각 다른 파일들을 볼 수 있게된다. 그리고 여기서 추가로 :vs main.c 를 입력하면 다음과 같이 3분할로 3개의 파일들을 나눠서 볼 수 있게된다. 여기서 각각의 파일을 편집..

    Command-line Mode - 내용 찾아서 변경하기

    이는 command-line mode에서 파일의 내용을 찾아서 변경 할 수 있는 명령어로서 그 종류는 다음과 같다. 종류 기능 :s/찾는단어/새단어 현재 라인에서 찾는 단어를 새 단어로 한 번만 찾아서 바꾸기 :s/찾는단어/새단어/g 현재 라인에서 찾는 단어를 새 단어로 모두 바꾸기 :%s/찾는단어/새단어/g 현재 파일에서 찾는 단어를 새 단어로 모두 바꾸기 :%s/찾는단어/새단어/gc 현재 파일에서 찾는 단어를 새 단어로 모두 바꾸되 물어보면서 바꾸기 :#,#s/찾는단어/새단어/g 두 라인 번호(#) 사이에서 찾는 단어를 새 단어로 모두 바꾸기 1. :s/찾는단어/새단어 - 현재 커서가 위치한 줄에서 찾는 단어를 새 단어로 한 번만 찾아서 바꾸기 다음과 같은 상황에서 :s/Linux/Vim 을 입력하면..

    Command mode - 화면스크롤

    지난번에 살펴본 커서 이동으로 이용하는 것도 아주 편리하지만 문제는 파일의 내용이 길어질 경우 큰 단위로 이동이 필요할 때 불편하다는 것이다. 이를 위해서 화면 스크롤과 관련된 명령어들이 존재하는 데 그 명령어들은 다음과 같다. 종류 기능 ^F(ctrl + F) 한 화면을 앞으로 스크롤 ^B(ctrl + B) 한 화면을 뒤로 스크롤 ^D(ctrl+D) 반 화면을 앞으로 스크롤 ^U(ctrl + U) 반 화면을 뒤로 스크롤 ^E(ctrl + E) 한줄 앞으로 스크롤 ^Y(ctrl + Y) 한줄 뒤로 스크롤 Shift + h 화면의 맨 윗줄로 Shift + m 화면의 중간 줄로 Shift + l 화면의 맨 아랫줄로 ​ ^F(ctrl + F) - 한 화면을 앞으로 스크롤 / ^B(ctrl + B) - 한 화면..

    Command mode - 글자(단어) 찾기

    우리가 흔히 windows에서 사용하던 ctrl+f 와 같은 검색기능을 vim에서도 지원한다. 이는 단순한 문서작성에서 뿐만 아니라 라인의 수가 많은 코드를 작성할 때에도 찾고자 하는 내용을 빠르게 찾을 수 있어서 그 쓰임새가 아주 유용하다. 이를 통해서 파일내에서 사용자가 원하는 단어를 탐색할 수 있다. 이와 관련된 명령어들은 다음과 같다. 종류 기능 /글자(단어) 커서기준 아래쪽으로 글자(단어) 찾기 ?글자(단어) 커서기준 위쪽으로 글자(단어) 찾기 n 이전에 검색한 단어를 검색했던 방향으로 다시 검색 N 이전에 검색한 단어를 검색했던 방향의 반대방향으로 다시 검색 ​ 1. /글자(단어) / ?글자(단어) - 커서기준 아래쪽으로 글자(단어) 찾기 / 커서기준 위쪽으로 글자(단어) 찾기 실습을 하는 파..

    Command mode - 현재 파일을 저장하고 vim 종료

    이전에 따로 언급하지 않았지만 간단히 언급하자면, vim의 insert mode에서 파일의 내용을 입력하고 이를 저장하기 위해서는 우선 esc키를 눌러서 다시 command mode로 돌아간 후에 ' : ' 을 입력하여서 command line mode로 전환하여 :w 명령어를 입력하여 저장을 하고 이어서 ' :q ' 입력하여서 vim을 종료하고 나올 수 있다. 하지만, 이렇게 하기 위해서는 모드 변경도 여러번 해야하고 입력해야하는 명령도 많다보니 상당히 번거롭다. 그런데 이를 보다 간편화 해줄 수 있는 것이 command mode에서의 "ZZ" 명령이다. ​ ZZ - 현재 파일을 저장하고 vim 종료 지금까지 insert mode에서 파일의 내용을 저장하고 vim을 종료하기까지 거쳤던 많은 과정들을 이..

    Command mode - 커서이동

    vim에서는 텍스트를 편집함에 있어서 커서이동과 관련된 명령어들이 존재하는 데 그 명령어들은 다음과 같다. 종류 기능 h / (숫자)h 왼쪽으로 이동 / (숫자)만큼 왼쪽으로 이동 j / (숫자)j 아래쪽으로 이동 (숫자)만큼 아래쪽으로 이동 k / (숫자)k 위쪽으로 이동 (숫자)만큼 위쪽으로 이동 l / (숫자)l 오른쪽으로 이동 / (숫자)만큼 오른쪽으로 이동 - 라인의 시작으로 이동 e, E 다음단어의 끝으로, 문자단위 이동 w, W / b, B 다음단어의 처음으로, 문자단위 이동 (시작->끝 / 끝 -> 시작) $ 줄의 마지막으로 이동 0 줄의 처음으로 이동 ^ 줄의 처음으로 이동(공백을 제외한 문자가 처음 시작되는 지점) Shift + g 문서의 마지막으로 이동 gg 문서의 처음으로 이동 (숫..