###1. 문자열 관련기능
- formatting
- find, search
##1. formatting
#1. 정렬 center, right, left (width 기준으로 정렬)
명령창에 :center (기본값 80) 또는 : center 원하는width값
:right 50
#2. find
1) 문자 1개 검색
vim 일반모드에서 f+검색할단어 치면 검색됨
| 명령어 | 설명 |
| fc | 문자 c를 전방 검색 (위로 검색) |
| Fc | 문자 c를 후방 검색 ( 아래로 검색) |
| ; | 최근 검색을 재검색 |
| , | 최근 검색을 반대방향으로 재검색 |
#3 문자 검색 명령어
| 명령어 | 설명 |
| /string | string을 전방탐색(prefix로 \M 혹은 \V로 magic 탐색을 끌 수 있음) |
| ?string : | string을 후방탐색 |
| * | 현재 커서에 위치한 단어를 전방탐색 |
| # | 현재 커서에 위치한 단어를 후방탐색 |
| n | 다음 탐색 결과를 찾아냄(전방탐색의 경우 전방으로, 후방탐색의 경우 후방으로 이동) |
| N | n과 반대방향으로 다음 탐색 |
| % | 괄호의 짝을 찾아줌 |
** magic: 특수문자에 대한 해석기능을 의미.
#4 case-sensitive searching 대/소문자 구분 안코 검색
1) \c 접두어를 사용 하거나 또는 ignorecase option을 킨다
\c 접두어 사용하는 경우
/\cinter
inter를 검색(대소문자 구별안코)
\C 는 \c의 반대기능== ignorecase 가 켜진 경우에, case-senbsitive searching이 가능
**ignorecase 키려면 :set ignorecase //명령창 에 입력하기
ignorecase가 켜지면 c는 대소문자 구분하지 않지만 C는 대소문자 구분해 검색한다.
꺼지면 그 반대
원래 default 값을 주려면 :set noignorecase

REGEX(정규표현식) 로도 찾음
a~g 로시작 하는 문장중 공통이 re문자가 있는 경우.
#5 검색 후 밝게 표시된 단어를 해제하고자 하는 경우
1) :nohl
=> 일회성 highlightsearch 해제
2):set nohls
=> hightlightsearch 옵션 해제 (기본값으로 off인 경우도 있다)
man man > manpage.txt
man파일을 txt형태로 만들어 vim으로 열자.
그냥 /찾을단어(문장) 해도 된다

: set hls // 하이라이트 표시
/section // section 찾기

/\csection // /\c찾을문장 입력시 대소문자 구분하지 않코 찾음
[section] 을 찾아봐라(조건: 정규표현식 단어가 들어간 문자형태)

/[section] 은 잘못된 결과값들을 찾게 됨.

/\M[section] // magic 해석을 금지하는 \M prefix 를 붙이면 해결된다.
###2. 문자열 관련기능
- 교체(substitue)
- 특수문자 교체
- file format: DOS, UNIX의 new line 문자 차이
##1. 교체 : sed 기능이 import 되어 문법이 동일
#1. :[range]s/<찾는 문자열>/<교체할 문자열>/<옵션>
| 명령어 옵션 | 설명 |
| g | (global) 검색된 문자열 모두를 교체 * g옵션 생략 시 처음 1개만 교체함 |
| i | (ignore case) 대소문자 무시 |
| c | (confirm) 교체할 때마다 Yes/No 확인 |
| e | 교체 과정 중 에러무시 |
** seperator로 slash(/) 가 주로 사용되지만 다른 문자를 사용해도 무방( 예: 콤마)
** range 생략 시 현재 행만 적용
**range 사용법
[1,50] : 1번행~50번행
[%] : 문서전체
s: seperator 약자
찾는문자열만 있고, 교체할 문자열 안넣고 빈칸이면 삭제 의미를 지님.
#2 separator 의 escape
seperator 대신 comma를 사용하는 경우
1) /home/linuxer 를 home/unixer 로 교체하면
backslash \ 사용은 escape한다는 의미.
1 /home/li/
2 im error t/home/linuxe:esting , I didnt saving but be attacked
여기서 /home/linuxe 를 /home/unixer 로바꿔주자.
:%s//home/linuxe//home/unixer/g // 안됨
:%s/\/home\/linuxe/\/home\/unixer/g //되지만, 복잡 seperator를 통해 / 를 표시
:%s,/home/linuxe,/home/unixer,g // separator를 comma 로 바꾸면 복잡하지않코 해결됨

#3 특수문자(NewLine 개행문자)의 교체
1) CR의 입력 : ^V^M
| 형식 | 개행 문자 |
| DOS/Windows | CR + LF |
| UNIX | LF |
=> CTRL-V 대신에 CTRL-Q를 사용해도 됨.
2) 그러나 NewLine 문자 바꾸기 위해 위 방법 사용하진 않음.
=> 실전에서는 :set ff=dos 혹은 : set ff=unix 로 설정 후 저장하는 방법을 사용.
**윈도우즈에서 작성된 텍스트파일을 리눅스/유닉스에 가지고오면 문자들이 깨진다.(맨끝에 이상한 값이 붙음)
반대로 리눅스/유닉스에서 작성된 텍스트파일을 윈도우즈로 가지고오면 개행문자가 구분되지 않고 붙어있다.
**CR: Carriage Return
위 문제 해결방법은 윈도우즈 -> UNIX 로 가면 개행문자 요소 중 CR삭제 .
UNIX -> 윈도우즈로 가면 CR을 추가시킨다.
#4 CR 삭제하는 subst 명령
:%s//^M//g //방식 1 ^M:(ctrl v)+(ctrl m) ctrl 누른상태에서 연달아치기.
:%s/\r//g // 방식 2 \r로도 특수키 입력가능.
위 방법은 교육목적이다, 실제로는 다음을 사용한다.
set ff=dos // 리눅스에서 dos 로 파일을 가지고 왔다면 파일 format 을 dos로 바꿔야함
set ff=unix // win에서 파일을 리눅스에 가지고 왔으면 파일 열어서 해당 명령어 입력. 파일 format을 unix로 변경
#5 ASCII 를 코드값으로 입력하는 경우
| 입력 방법 | 설명 |
| <CTRL-V> ### | ###에 10진수를 사용하여 ASCII 입력 |
| <CTRL-V> o### | ###에 8진수를 사용하여 ASCII 입력 |
| <CTRL-V> x## | ##에 16진수를 사용하여 ASCII 입력 |
man ascii 통해 아스키값 참조.
#숫자증감
ctrl -A :1 증가
ctrl -X : 1감소
해당 내용은 프로그래머스 리눅스 강의 김선영 선생님의 강의를 들으며 기록했습니다.
'프로그래머스 > 리눅스' 카테고리의 다른 글
| 리눅스의 기초(3-7) encoding, 편리한 기능들 (vim editor Final) (0) | 2022.11.06 |
|---|---|
| 리눅스의 기초(3-6) 파일 관련 기능 (2) | 2022.11.06 |
| 리눅스(기초 3-4) vim의 매뉴얼 (0) | 2022.11.05 |
| 리눅스 기초 (3-3) vim editor(패키지) (0) | 2022.11.05 |
| 리눅스 기초 (3-2) vim 일반모드 기능 (0) | 2022.11.05 |