Backquote(`)와 작은따옴표(')의 차이


앞서 배운 것처럼 backquote(`)와 마킹한 알파벳을 같이 누르면 마킹된 위치로 이동한다.


이때, backquote(`) 대신 작은따옴표(')와 마킹한 알파벳을 같이 누르면 마킹된 위치가 속한 행의 공백이 아닌 첫 글자로 이동한다


다음은 backquote(`)작은따옴표(')를 이용한 경우다. 


명령 모드 `a : 같은 파일 내에서 마킹된 위 a로 이동

명령 모드 'a : 같은 파일 내에서 마킹된 위치 a가 속한 행의 공백이 아닌 첫 글자로 이동

명령 모드 `A : 마킹된 A로 이동

명령 모드 'A : 마킹된 위치 A가 속한 행의 공백이 아닌 첫 글자로 이동


작은따옴표(')와 backquote(`)가 서로 비슷하면서도 조금씩 다른 역할을 하는 것을 알 수 있다.


 

마킹 관련 몇 가지 사용법


vim 커서가 이전에 있었던 위치를 자동으로 마킹해준다. 물론이것은 커서의 모든 위치를 일일이 지역 마킹한다는 뜻은 아니다이동 명령을 이용하여 커서의 위치가 급격하게 변화할 때 직전에 커서가 있던 위치를 자동으로 지역 마킹한다


가령, 탐색된 문자열을 n이나 N로 점프하는 경우 또는, 명령 모드에서 gg키로 문서의 처음으로 이동하거나 G키를 눌러 문서의 마지막으로 점프하는 경우 등 같은 경우에 자동으로 지역 마킹이 이루어진다.


이러한 자동 지역 마킹을 알아두면 작업을 하면서 주요 위치들 사이를 손쉽게 오가면서 작업을 할 수 있다. 


사용법은 아래과 같다. 


명령 모드에서 ``(Backquote 연속 두 번 누름)


같은 파일 내에서 현재 위치로 점프해오기 전 커서 위치로 이동


명령 모드에서 ''(작은따옴표 연속 두 번 누름)


같은 파일 내에서 현재 위치로 점프해오기 전 커서가 위치한 행의 공백이 아닌 첫 글자로 이동


이렇게 되면 backquote(`) 두개 또는 작은따옴표('두개를 연달아 연타하면서 간단하게 이전에 작업했던 곳으로 돌아갈 수 있게 된다. , 이것은 같은 파일 내에서만 사용할 수 있는 지역 마킹이다.



또, 열심히 작업하다가 잠시 끊고 쉬었다가 다시 작업을 할 때, 이전에 작업하던 부분에서 연속으로 작업하길 원할 수 있다. 이런 경우를 위하여 vim은 해당 파일이 어느 위치에서 작업을 끝냈는지 자동으로 지역 마킹을 해둔다


사용법은 다음과 같다. 


명령 모드에서 `"(Backquote큰따옴표)


전에 vim으로 현재 파일을 닫았을 때 커서가 있던 위치로 이동


명령 모드에서 '"(작은따옴표큰따옴표)


이전에 vim으로 현재 파일을 닫았을 때 커서가 있던 행의 공백이 아닌 첫 글자로 이동


마지막으로 마킹된 내용을 확인해보고 싶을 때는 명령 라인에 :marks 라고 명령어를 입력하면 된다.

 

그러면 아래와 같이 전역 마킹과 현재 파일에 지정된 지역 마킹 그리고 파일 마킹들이 전부 화면에 표시된다.




Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



원하는 위치를 마킹해서 이동하기


우리가 이동하고 싶은 위치를 마킹하고 해당 위치로 빠르게 이동하면서 작업을 하면 무척 효율적인 작업이 가능해질 것이다.

 

원하는 위치를 마킹하는 방법과 마킹한 위치로 이동하는 방법은 다음과 같다.

 

원하는 위치에 커서를 두고 명령 모드에서 m[임의의 알파벳]

 → 해당 위치를 알파벳으로 마킹


`[마킹한 알파벳] 해당 알파벳이 마킹된 위치이동


작은 따옴표(')와 비슷해 보이는 ` 이 표시는 backquote 또는 backtick 이라고 부른다작은 따옴표(')와는 다르므로 주의해야 한다. 키보드에서는 숫자키 1번 바로 왼쪽에 있는 키이다



마킹할 때 사용하는 알파벳은 대문자인지 소문자인지에 따라서 지역 마킹과 전역 마킹으로 그 성격이 다르다.


알파벳 소문자인 a~z로 마킹하면 지역 마킹이 된다.


지역 마킹이란 같은 파일 내부에서만 마킹한 위치로 이동할 수 있는 마킹이다. , test.txt에서 마킹을 했다면 test.txt 파일에서 작업을 할 때만 마킹한 위치로 이동할 수 있다.

 

알파벳 대문자인 A~Z로 마킹하면 전역 마킹이 된다.


전역 마킹이란 다른 파일에서도 전역 마킹으로 지정된 위치로 이동할 수 있는 마킹이다

서로 다른 파일들 사이에서도 얼마든지 이동이 가능하다는 것이다. 이게 어느 정도 수준이냐면, 전역 마킹으로 지정한 위치는 해당 파일을 별도로 열지 않아도 마킹한 곳으로 이동이 가능하다. 가령, test.txt 파일에 전역 마킹 A로 위치를 지정해 놓았을 때, test.txt 파일을 열지 않아도 다른 파일에서 명령 모드 `A 키를 누르면 test.txt 파일이 열리면서 해당 위치로 이동한다.

 


숫자 0~9로 마킹된 파일 마킹


파일 마킹은 우리가 직접 지정하는 것이 아니라 ~/.viminfo 파일에서 자동으로 지정하는 것으로 vim이 알아서 지정하는 것이다. 우리가 파일 마킹을 할 수는 없지만 명령모드에서 `1과 같이 입력하면 해당 파일로 이동할 수 있다. 

 

 

마킹한 위치와 마킹에 사용된 알파벳들은 파일을 닫아도 그대로 유지되므로 언제든지 재사용할 수 있다. 


이것이 재사용될 수 있는 이유는 해당 마킹에 대한 정보가 .viminfo 파일에 저장되기 때문이다.

 

아래는 .viminfo 파일에 저장된 마킹관련 정보들이다.



 

마킹으로 이동하기에 대한 간단한  사용례는 다음과 같다. 


명령 모드에서 ma 

 → 현재 파일의 현재 커서 위치를 지역 마킹 a지정


명령 모드에서 `a

 → 지역 마킹 a로 지정된 위치이동(, 현재 파일에 지정되어 있을 경우)


명령 모드에서 `4 

 → 파일 마킹 4번의 위치이동(파일이 열려있지 않더라도 해당 파일이 열리면서 화면이 이동한다.)


명령 모드에서 mB 

 → 현재 파일의 현재 커서 위치를 전역 마킹 B지정


명령 모드에서 `B 

 → 전역 마킹 B로 지정된 위치이동(파일이 열려있지 않더라도 해당 파일이 열리면서 화면이 이동한다.)


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



+ Recent posts