목록컴퓨터, 풀어그림 (352)
살아가는 이야기
바로 아래 글에서 vimdiff를 이용하여 두 파일을 비교할 수 있다는 것을 적었다. 이 글에 적은 것처럼 Ctrl-ww를 이용하면 두 윈도우 사이를 이동할 수 있다. 그리고 필요한 부분을 그냥 vim 편집 명령어를 이용하여 편집할 수 있다. 그런데 다른 부분을 그냥 합치는 것이 목적이라면 반대편 파일과 같은 내용으로 키보드를 두드려 수정해야 하는데, 이것을 수작업으로 한다는 것은 컴퓨터를 무시하는 처사가 아닐 수 없다. 간단한 사용법을 여기 적겠다. dp: 커서가 있는 쪽의 내용을 반대 쪽에 복사해 놓는다. (Duplicated Put이 아닐까 생각해 보았으나 Diff. Put(:diffput)이었다.) do: 커서가 없는 쪽의 내용을 이쪽에 복사해 놓는다. (Duplicate from the Othe..
Vim을 몇 년 넘게 쓰고 있으면서도 vim에 파일 비교 기능이 있는 줄은 그동안 몰랐었다. 그래서 windiff, winmerge 등을 쓰고 있었는데, 이미 이런 기능이 있었으니 그 이름은 바로 vimdiff. 두 파일 a.cpp와 b.cpp를 비교하고 싶다면 다음과 같이 실행하면 된다. vimdiff a.cpp b.cpp vimdiff는 vim에 내장된 기능이기 때문에 다음과 같이 실행해도 된다. vim -d a.cpp b.cpp 실행한 모양은 다음과 같다. 마우스로 클릭하여 원하는 곳을 수정할 수 있는데, 키보드로 윈도우 사이를 왔다갔다하고 싶다면 Ctrl-ww 를 타이핑하면 된다. Ctrl 키를 누른 상태에서 w 키를 두 번 누르면 된다. 보통 편집할 때와 마찬가지로 :q 명령어를 치면 커서가 있..
Vim 설정을 일관된 방식으로 유지하는 사람은 별 문제가 없겠지만, 간혹 Unix와 윈도우즈를 넘나들며 파일을 편집해야 하는 사람은 항상 새줄(newline)문자 문제에 봉착한다. 문제의 핵심은 CR LF를 쓰느냐(DOS, 윈도우즈) LF만 쓰느냐(Unix) 하는 문제다. 아무튼 이 문제는 Vim 편집기를 이용하면 매우 쉽게 해결할 수 있다. 핵심은 ff(file format)를 설정하는 일이다. 먼저 Unix 포맷을 DOS 포맷으로 바꾸고 싶다면 다음과 같이 쓰면 된다. :set ff=dos 이제 DOS 포맷을 Unix 포맷으로 바꾸는 명령어도 자연히 알게 되었을 것이다. :set ff=unix 물론 이렇게 변환한 다음에는 파일을 저장해야 한다.
Visual Studio 2005를 이용하여 파일 입출력을 수행하다가 보니 다음과 같은 경고 메시지가 나왔다. warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 내용을 읽어 보면 fscanf는 안전하지 않으니 fscanf_s를 사용하라는 말이다. 그리고 친절하게도 이 경고를 없애려면 _CRT_SECURE_NO_WARNINGS를 사용하라고 한다. 어떻게 사용하라는 말인가? 컴파일할 때 _CRT_SECURE_NO_WARNINGS를 정의하도..
이클립스(eclipse)의 기본 설정대로 편집하면 들여쓰기의 탭 문자가 파일로 그대로 저장된다. 이 탭 간격은 4칸인 것처럼 보이지만 실제로는 탭이기 때문에 다른 편집기에 코드를 붙여 넣을 때 예상과 다른 결과를 보이게 된다. 4칸 공백문자(space)로 저장한다면 이런 문제를 해결할 수 있다. 그런데 어떻게 그렇게 할 수 있을까? 메뉴의 Window -> Preferences를 선택하면 사용자 선택 사항을 조정할 수 있는 대화창이 나타난다. 여기 왼쪽에서 Java -> Code Style -> Formatter를 선택한다(아래 그림 참고). Active profile을 보면 Eclipse [built-in]이 기본으로 되어 있다. 이것은 사용자가 수정할 수 없는 설정이므로 New 버튼을 눌러 새로 프로..
윈도우즈를 설치하면 사용자 디렉터리가 자동으로 "My Documents"라는 곳에 생긴다. 그리고 이 곳에 "내 문서"라는 링크를 걸어 각종 레지스트리에 등록한다. 그런데 문제는 여기에 "공백 문자"가 있다는 것이다. 윈도우즈로 포팅된 프로그램 중에는 공백문자가 있는 파일 경로를 제대로 인식하지 못하는 경우가 있다. 지금까지 발견한 프로그램을 여기 적고 현상을 기술하겠다. 앞으로도 계속 발견되는 대로 적을 예정이다. javadoc: 이클립스 작업 폴더를 "My Documents" 내에 두었다면 javadoc을 수행할 때 문제가 발생할 수 있다. javadoc에서는 URL로 path를 만드는데, 이 때 "My Documents"는 "My%20Docuemnts"로 변환된다. Gnu Emacs Win32: G..
스카이프(Skype: 인터넷 전화)를 설치한 다음에 인터넷 브라우저에 다음과 같은 기능이 생겼다. 전화번호에 해당하는 것을 모두 그림으로 표시한 다음 스카이프 통화 버튼을 누를 수 있게 지원하는 기능인데, 위 그림처럼 전화번호 전체가 나타나지 않는 경우도 있어서 매우 불편하던 참이었다. 이것을 지우려면 '도구(T)' 메뉴의 '인터넷 옵션(O)'을 선택한 다음 '프로그램' 탭의 '추가 기능 관리' 버튼을 선택해야 한다. '추가 기능 관리' 윈도우에는 현재 인터넷 브라우저에 설치된 각종 기능이 나타나는데 여기서 'Skype add-on'을 선택한 다음 '사용 안 함' 버튼을 눌러 사용하지 않도록 설정하면 된다. 위와 같이 설정한 다음에 인터넷 브라우저를 다시 실행해야 적용된다.
Dev C++라고 무료 C++ 개발 환경이 있다. 최근 Dev C++ 5를 설치했는데 이것과 관련한 설정 팁을 몇 개 적겠다. 1. 줄 번호 배경색 변경: 처음에 설치하면 줄 번호 있는 부분의 배경이 까맣게 나와 보기 좋지 않다. 이것은 '도구(T)' 메뉴의 '편집기 설정(E)' 메뉴를 선택한 다음 '구문/문법' 탭의 'Gutter'를 선택한 후, 전경색과 배경색을 다시 설정하면 된다(아래 그림 참고) 2. 프로그램 실행 후 잠깐 멈추는 기능 추가: Dev C++는 콘솔 프로그램을 실행한 다음에 잠깐 멈추는 기능이 없다. 이를 위해서는 다음과 같은 내용으로 runNpause.bat 파일을 Dev 설치 폴더의 bin 폴더(예: C:\Dev-Cpp\bin)에 만든다. @echo off %1 pause 그리고..