vim 에서 특정 문자열 이후 문장 삭제하기

Posted by Everyharu
2017. 1. 6. 17:20 IT/서버세팅


간혹 vim 을 활용하던 중에 특정 문자열 이후를 모두 삭제하고 싶었던 적이 있을 것이다.


예를 들면 다음과 같다.


필자가 사용하는 세팅중에 다음과 같은 부분이 있다.


net.core.rmem_max = 67108864    ## TCP 버퍼 전송최대값 램이 2G이상이면 그냥이걸사용 (바이트단위) 

net.core.rmem_default = 67108864    ## TCP 버퍼 전송기본값 램이 2G이상이면 그냥이걸사용

net.core.wmem_max = 67108864    ## TCP 버퍼 수신 최대값 램이 2G이상이면 그냥이걸사용

net.core.wmem_default = 67108864    ## TCP 버퍼 수신기본값 램이 2G이상이면 그냥이걸사용

net.core.netdev_max_backlog = 262144

net.core.somaxconn = 4096

fs.file-max=66536

vm.min_free_kbytes=65536       ##캐시버퍼드메모리로 사용하지 않는 최소 메모리값(64M)

kernel.shmmax=536870912     ##shmmax 는 공유메모리 사이즈(512M)

kernel.sem=500 32000 100 128 ##세마포어 관련 세팅

net.ipv4.tcp_fin_timeout = 10 ## 기본값은 60  

net.ipv4.tcp_keepalive_time = 30 ## 기본값은 7200 keepalive 가 활성되 되어 있을 경우, 얼마나 자주 TCP 가 keepalive 메세지를 보낼지의



그런데 vim에 이 문장을 이 문장을 붙여넣은 후 ## 이후의 문장을 모두 삭제하고 싶다.

그렇다면 다음과 같이 입력하면 된다.


:%s/\#\#.*//


형태는 다음과 같다. %s는 명령어 \#\#.* 부분은 바꿔야할 부분에 대한 정규식이다. 그리고 맨 마지막 //의 사이에 바꿀 문장을 넣어주면된다.

위 문장에서는 바꿀 문장이 있는게 아니라 모두 삭제를 하는것이기 때문에 그냥 아무것도 들어가지 않은 것이다.




한마디로 이후문자 삭제 기능이 자체적으로 있다기 보다는 문자열 치환 기능을 응용하는 것이다.