4월, 2020의 게시물 표시

[VIM] Insert 모드에서 paste하기

잡설 vim 을 주력으로 쓰는 상황에서 마우스를 버리기 힘든 이유가 Insert모드에서 copy paste를 해야하는 경우가 많기 때문입니다. 특히나 Insert 모드에서 paste하기 위해선 esc 눌러서 Normal 모드로 간 다음 위치 조정해서 paste 하고 다시 i 로 Insert 모드로 재진입하는 번거러움은.. 정말 귀찮음 그 자체죠. 물론 vim 개발자 형님들이 만들었을거라는 생각은 했지만 그냥 마우스를 쓰는 방법이 있으니 그걸 찾기까지 생각이 미치지 못했죠. 그러다 우연한 계기(나중에 설명)로 방법을 찾게 되었고 reddit 댓글을 인용하자면 "this is sorcery!" 를 외치게 되었습니다. CTRL+R Normal 모드에서는 그냥 Redo입니다. vim 사용자는 다들 아시는 단축키죠. :help ^R CTRL-R Redo [count] changes which were undone. {Vi: redraw screen} 하지만 Insert 모드에서는 다릅니다. :help i^R CTRL-R {0-9a-z "%#*+:.-=} i_CTRL-R Insert the contents of a register . Between typing CTRL-R and the second character, '"' will be displayed to indicate that you are expected to enter the name of a register . The text is inserted as if you typed it, but mappings and abbreviatio

[cppcheck] The scope of the variable 'enable' can be reduced

잡설 정적 분석기 cppcheck를 돌리던 도중 다음과 같은 (style)을 발견했습니다. (style) The scope of the variable 'on' can be reduced. 뭔소리지? 하고 찾아보니 코딩 스타일 문제이며 대충 코드를 줄일수 있습니다. 라는 뜻이군요. 해당 코드는 다음과 같습니다. bool on = false for ( int i = 0; i < MAX_A; i++) { on = A[i]; x[i].enable(on); } bool on 을 굳이 for scope 바깥에 선언하지 말고 안에 선언하라는 뜻이었습니다. c 스타일로 c++ 개발하던 제겐 변수선언을 함수 초기에 선언하던 습관이 남아있어서 그랬던거죠. 이참에 정리해보았습니다. for loop 를 도는 동안에 bool on을 계속 선언하지 않도록 컴파일러가 최적화함 for scope 아래에서 의도하지 않게 on을 사용하여 잘못된 값을 사용하는 경우 차단 아래와 같이 수정하고, 잘못된 습관 하나 고쳤습니다. for ( int i = 0; i < MAX_A; i++) { bool on = A[i]; x[i].enable(on); }

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

git pull 을 했더니 branch가 갈라지는 경우

리눅스 멀티코어를 사용하는 tar 압축/해제