반응형

최근에 배운 게 TDD(Test Driven Development)이다.

Embedded 에는 적용하기 적합하지 않은 경우가 많아서, 사실 큰 관심을 두지 않았다.

 

그러다가, C#으로 툴을 만들다 보니,(그냥 TDD 연습도 해볼겸)

TDD 적용을 해보려고 시도해보았다.

 

익히 들은 googletest/googlemock은 C# 에는 적용이 힘들다.

애초에 C# 언어자체의 뿌리가 C/C++과는 판이하게 다르다. (오히려 java쪽에 더 가깝다)

어쨋든 단순하게는 컴파일러가 다르니, 적용이 불가능하다.

외부 프로젝트로 구성해서 적용은 가능하리라 생각하지만, 굳이 해볼 이유는 없어 보인다.

왜냐하면, 언어별로 Unit Test Framework가 있으니까.

 

C#에는 대략 다음의 3가지 Unit Test Framework를 적용가능하다.

  • NUnit
  • xUnit
  • MSTest

이 중에 가장 오래된 건 NUnit이고, 최근에는 xUnit이 활발하게 사용된다(ChatGPT한테 물어보니 잘 알려주네)

 

이 중 가장 최근에 많이 사용되는 xUnit을 써보기로 했다.

 

1. C# WPF Application 에 xUnit 을 이용한 TDD 개발 준비

C# WPF Application 이니까, 당연히 Visual Studio 에서 작성한다.

내가 사용한 툴은 Visual Studio 2022 이다.

처음에는 UnitTest 코드를 WPF Application 안에 포함시키려 했는데, 

프로젝트에 테스트 코드가 포함되면, 별다른 조치를 취하지 않으면, 실행 바이너리에 포함되게 된다.

빌드 옵션으로 처리를 할 수 있겠지만, 많이 번거롭다. (또한 필요한 요소들을 전부 따로따로 설치해줘야 하는 번거로움이 있다.)

하지만 소규모의 프로젝트에 간단한 확인이나, 임시로 테스트 하는 목적이라면, 그냥 포함시켜도 괜찮을 것 같다.

 

xUnit 준비하기 - 기존 프로젝트에 추가

 

Visual Studio 2022의 솔루션 탐색기에서, 프로젝트에 우클릭을 하면, Nuget 패키지 관리는 항목이 있고, 이걸 클릭하자

xUnit으로 검색해서 나오는 것들 중에 다음 패키지를 설치하자

  • xunit
  • xunit.runner.visualstudio(이걸 설치안하면, Test Code가 실행이 안된다.)
  • Moq
    • mocking 을 하려면 필요하다.

그럼 기본적인 준비는 끝났다.

같은 프로젝트 안에 추가하는 거라, 복잡하지 않다.

 

xUnit 준비하기 - 별도의 테스트 프로젝트 생성

 

(1) Visual Studio 2022의 솔루션에 테스트 용 프로젝트를 추가하자

솔루션 탐색기를 우클릭해서 새 프로젝트를 생성할때, xunit으로 검색하면, C# 용 xunit project 템플릿이 나온다.

이걸 클릭해서 프로젝트를 생성하고 추가하자.

 

이렇게 하면, 따로 Nuget 패키지 관리자에서 xunit 관련 패키지를 따로 설치안해도 된다.

하지만, 따로 해야되는 일은 있다.

 

(2) xUnit을 최신으로 업데이트 하기

 테스트 프로젝트를 생성하면서, 기본으로 추가된 xunit 패키지의 버젼이 낮을 수 있다.

프로젝트를 우클릭 한다음 Nuget 패키지 관리자를 열어서, 설치된 xunit 관련 패키지들을 최신으로 업데이트 하자.

 

(3) 개발 프로젝트를 종속성 항목에 추가하기

별개의 프로젝트이기 때문에, 개발 프로젝트에서 구현한 클래스 등에 접근하려면 종속성에 개발 프로젝트를 추가해야 한다.

프로젝트 우클릭 → "참조 추가" 또는 "종속성" 우클릭 → "프로젝트 참조 추가" 선택

 

참고로 테스트 프로젝트에서 개발 프로젝트 내에 구현된 클래스에 접근하기 위해서는 internal 지시자가 있으면, 접근이 안된다.

public 으로 변경해주자. 

 

(4) 개발 프로젝트가 WPF Application 인 경우, 발생하는 에러 해결하기

개발 프로젝트가 WPF Application인 경우, 3번까지 하면, 아래와 같은 문제가 생긴다.

'net7.0-windows7.0'을(를) 대상으로 하며, '.netcoreapp,version=v7.0'을(를) 대상으로 하는 프로젝트로는 참조할 수 없습니다.

 

처음에 이게 무슨 소리인가 했다.

데자뷰처럼 옛날에도 비슷한 일이 있었던 거 같은데... 기억이 안난다.(있었던 일인지조차 헷갈린다.)

 

문제는 WPF Application은 TargetFramework가 net7.0-windows7.0 또는 net8.0-windows7.0 이런식으로 설정된다.

csproj 파일을 열어보면, 아래와 같이 되어 있었다.

<TargetFrameworks>net7.0-windows7.0</TagetFrameworks>

 

그리고 xunit 테스트 프로젝트를 열어보면, 이렇게 되어 있었다.

<TargetFrameworks>net7.0</TagetFrameworks>

 

 

결론은 둘 간의 TargetFramework 이 달라서 안된다는 거다.

근데, 웃긴 건, xunit 프로젝트를 우클릭해서 나오는 UI 에서 변경도 안된다는 거다.

결국 csproj에서 손으로 고쳐줬다. 하는 김에 둘 다 8.0으로 변경했다.

<TargetFrameworks>net8.0-windows7.0</TagetFrameworks>

 

자 이렇게 하니 문제가 사라졌다.

반응형
반응형

다른 건 몰라도, Git 에 기본으로 연결된 편집기랑 비교 병합 툴은 정말 거지 같다.

너무 불편하다.

 

그래서 대개가 외부 툴을 끌어다 쓴느데, 

그 중에 perforce 중 일부인 p4merge를 연동하는 방법이다. 찾는데 좀 애먹었다.

# configure git
git config --global diff.tool p4merge
git config --global difftool.p4merge.path /Applications/p4merge.app/Contents/Resources/launchp4merge
git config --global difftool.prompt false
git config --global merge.tool p4merge
git config --global mergetool.p4merge.path /Applications/p4merge.app/Contents/Resources/launchp4merge
git config --global mergetool.prompt false

# disable unwanted orig files
git config --global mergetool.keepBackup false

# test
git difftool HEAD^ HEAD

 

 

p4merge는 아래에서 받으면 된다.

https://www.perforce.com/products/helix-core-apps/merge-diff-tool-p4merge

 

Diff Tools and P4 Merge | Perforce Software

P4 Merge for Perforce P4 (formerly Helix Core) tracks and compares the effects of past and pending work for branches and individual files. This free side-by-side file comparison tool is used and loved by developers and designers to visualize merges, obtain

www.perforce.com

 

회사에서도 쓰는 툴이라서 익숙하고, 아무리 생각해도 이것만큼 편한 건 흔치 않다.

반응형
반응형

Git 이란

분산형 VCS 중의 하나이다.

요새는 ai  한테 물어보면 아주 자세하게 설명해준다.

 

아래는 Perplexity의 답변이다.

Git은 소프트웨어 개발에서 코드와 파일의 변경 이력을 효과적으로 추적하고 관리할 수 있도록 도와주는 **분산형 버전 관리 시스템(Distributed Version Control System, DVCS)**입니다. 즉, 여러 명의 개발자가 동시에 하나의 프로젝트에서 작업할 때, 각자의 변경 사항을 기록하고, 필요할 때 언제든지 과거의 특정 시점으로 되돌릴 수 있게 해주는 도구입니다.
Git의 주요 특징
• 분산 구조: 모든 사용자가 자신의 컴퓨터에 전체 프로젝트의 이력을 저장하므로, 중앙 서버에 문제가 생겨도 각자의 로컬 저장소로 복구가 가능합니다.
• 버전 관리: 파일의 변경 이력을 시간순으로 기록하여, 이전 버전으로 쉽게 되돌릴 수 있습니다. 예를 들어, 실수로 코드를 잘못 수정했을 때도 과거 상태로 복구할 수 있습니다.
• 브랜치와 병합: 여러 명이 동시에 각자의 브랜치에서 독립적으로 작업하고, 나중에 변경 사항을 하나로 합칠 수 있습니다. 이를 통해 실험적 기능 개발이나 협업이 용이해집니다.
• 협업 지원: 원격 저장소(예: GitHub, GitLab 등)를 통해 여러 개발자가 동시에 작업하고, 변경 사항을 공유할 수 있습니다.

 

 

Git 을 직접 해볼 수 있는 곳

https://learngitbranching.js.org/?locale=ko

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

 

정말 직관적으로 Git 이 동작하는 걸 볼 수 있다.

반응형
반응형

VS Code의 기본 폰트가 영 보기 싫었다.

너무 굵다... 눈이 피곤했다.

다들 많이 쓴다는 D2Coding도 내 눈에는 영 마음에 들지 않았다.
그러다가 눈에 띈 게 JetBrains Mono이다.

이름에서부터 알 수 있듯이, JetBrains에서 받을 수 있다.
https://www.jetbrains.com/lp/mono/

 

JetBrains Mono: A free and open source typeface for developers

Try JetBrains Mono in your IDE. Its simple forms and attention to every detail make coding a nice experience for developers’ eyes, no matter which IDE you choose.

www.jetbrains.com

 

글꼴 설치하기

다운로드한 파일을 풀고, 안에 내용 중에 ttf폴더를 찾아서 들어간 다음, 거기 있는 모든 ttf 파일을 설치해 준다.

 

설치 방법은 여러 가지다

  • 그냥 저 파일들은 전부 선택한 다음 더블클릭하기
  • 서체 관리자를 실행해서 모두 드래그 앤 드롭하기
  • 서체 관리자의 파일->현재 사용자에 서체 추가를 선택하고, 글꼴이 들어있는 폴더의 ttf 파일들을 선택하기

정상 설치되면, 이렇게 서체 관리자에서 볼 수 있다.

 

VS Code(Visual Studio Code)에 글꼴 설정하기.

VS Code는 아무리 봐도, 설정이 쉽지가 않다.

* 설정 들어가기.

CMD + SHIFT + P 를 누르고 "기본 설정 열기 ui" 또는 "preference open ui" 라고 치면 나오는 것들 중에
아래와 같이 선택해서 설정으로 들어가자.

 

그러고 나서 나오는 UI 항목 중에 아래그림과 같이 Font Family를 찾아서 'JetBrains Mono'를 맨 앞에 추가한다.

 

이게 끝이다.
만약 제대로 적용이 안 되는 것 같으면, 리붓해 주면 된다. 

제대로 되면 나오는 이쁜 글꼴.

참고로 이 글꼴은 아래와 같은 Ligature를 지원한다.

 

 

아래 내용부터는 안 해도 그만, 해도 그만이지만, 알아두고 하는 것이 좋다.

글꼴 조정하기

위에서 설명한 글꼴 항목을 보면, 여러 조정항목들이 있고, 어떤 것들은 settings.json 에서 편집이라고 되어 있는데 이걸 클릭해서 글꼴의 굵기, 크기, Ligature 지원 등을 설정할 수 있다.

 

현재 나의 설정 참고하자

 

굵기가 "normal" 일때와 "200"일 때의 비교, 개인적으로 200인 게 더 좋다.(오른쪽)

반응형
반응형

VI를 쓰다보면 어떤 파일을 열면 줄의 맨끝에 ^M이 붙어있는 경우를 볼 수 있다.

이건 Windows와 Unix/Linux 계열에서 사용하는 개행문자가 다르기 때문이다.

* 개행문자(New line)
  Windows : \r\n
  Unix/Linux : \n

** \r 이문자는 Carriage Return 이라고 하면 <CR> 로 표현되기도 하며 ASCII Table에서도 찾을 수 있다.


단순히 저문자를 치환으로 없애주기만 하면 된다. 또는 Dos용으로 보게 바꾸어도 된다.


1. ^M 문자 바꾸기
 :%s/^M//g

^M문자는 Ctrl+v Enter 를 누르면 나온다.
(여담으로는  gVIM에서는 이럴 필요도 없는 것 같다.)

2. 모드 변경하기
 :set fileformat=dos

반응형
반응형
 
vi 편집기란?  
파일을 생성하거나 편집하는데 사용하는 프로그램을 에디터(editor)라고 합니다.
유닉스에서 사용하는 에디터 중 vi 에디터 텍스트 편집기로 가장 대표적인 프로그램은 vi 에디터 입니다. vi 편집기는 Visual Editor로서, 모든 유닉스 시스템에 있으며 따라서 vi 편집기를 사용할 수 있다는 것은 어떤 유닉스 시스템에서도 문서 작업을 할 수 있다는 것을 의미합니다.

예를 들어 전자우편을 작성하거나, 프로그램을 작성하는 일, 또는 기타문서를 작성할 때에 편집기는 필수적인 연장(tool)입니다.



- vi 에디터 구성과 방법  
vi는 입력 모드와 명령어 모드 그리고 라인 모드의 세 가지 형태로 구성되어 있습니다.입력모드는 일반적은 텍스트 에디터와 같이 원하는 문자를 입력할 수 있는 상태를 말하고, 명령어 모드는 입력한 내용을 편집하기 위해서 다양한 편집 관련 명령어를 사용 할 수 있는 상태를 의미 한다.

따라서 입력 모드에서는 문자의 입력만이 가능하며 문단의 재구성과 삽입, 삭제 등의 편집 기능은 오직 명령어 모드에서만 사용할 수 있습니다.

vi를 실행한 직후에는 명령어 모드에 위치하게 되며 i(insert)나 a(append), o(open)를 입력하게나 <Insert> 키를 이용해서 입력 모드로 전환할 수 있다.

입력 모드에서 명령어 모드로 복귀할 때는 <Esc>키만을 사용합니다.입력     모드로 전화 i 또는 a 또는 o 또는 <Inset> 명령어 모드로 전환 <Esc>vi는 입력 모드와 명령어 모드 이외에 라인 모드를 추가로 갖고 있는데, 이는 셸 명령어나 외부 프로그램들을 에디터의 내부에서 직접 실행 시킬 수 있는 모드입니다.

라인 모드는 vi의 본체인 ex가 실행되는 상테이므로 보다 원초적인 텍스트 조작이 가능해진다. 또한 라인 모드는 셸과 직접 연결되어 파이프를 구성하기 때문에 작업 중인텍스느에 대해서 다양한 작업을 연결시킬 수 있다.

다른 모드와는 달리 라인 모드는 화면의 마지막 줄에 라인 모드임을 알리는 콜론(:)과 함께 입력한 내용이 출력되어 진행 중인 내용을 확인을 할 수 있도록 되어 있다. 라인 모드는 명령어 모드에서만 전환될 수 있으며, 입력 모드에서 직접 라인 모드로 들어올 수 없다.

따라서 vi 에디터는 실행 직후에 위치한 명령어 모드에서 입력 모드 그리고 라인 모드의 세 가지 모드를 상호 전환시키면서 작업을 진행하는 방식으로 사용된다.

그림 삽입.

라인 모드에서 :을 먼저 입역한 뒤에 원하는 명령어를 입력하는 방식으로 vi 명령어 이외의 셸 명령어와 외부 명령어들을 실행시킬 수 있다.


1.시작    
vi file  vi를 시작하여 지정한 파일 편집  
vi -R file  읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
view file  읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집  


2.종료    
:wq  데이터를 저장하고 종료  
:q!  데이터를 저장하지 않고 종료  


3. 디스플레이 제어하기    
^L  현재 화면을 다시 디스플레이하기  
:set number  내부 줄 번호 디스플레이  
:set nonumber  배부 줄 번호 디스플레이 않기  



4. 마지막으로 지운 것 복사하기    
p  마지막으로 지워진 것을 커서의 뒤/아래에 삽입  
P  마지막으로 지워진 것을 커서의 앞/위에 삽입  
xp  두 문자를 바꿈  
deep  두 단어를 바꿈  
ddp  두 줄을 바꿈  



5. 패턴 검색    
/rexp  지정된 정규 표현식에 대해 앞으로 이동  
/  이전의 패턴에 대해 앞으로 검색을 반복  
?rexp  지정된 정규 표현식에 대해 뒤로 이동  
?  이전의 패턴에 대해 뒤로 검색을 반복  
n  /나 ?명령에 대해 같은 방향으로 반복  
N  /나 ?명령에 대해 반대 방향으로 반복  


6. 약어의 사용    
:ab short long  short를 long에 대한 약어로 변경  
:ab  현재 약어 목록을 표시  
:una short  약어 short를 표시  


7. 줄 길이의 조정    
r<Return>  문자를 뉴라인으로 변경  
J  줄의 결합  
:set wm=n  오른쪽으로 n문자 위치에서 자동적으로 줄 나눔  

8. 커서 이동    
h<Left>  커서를 한 칸 왼쪽으로 이동  
j<Down>  커서를 한 줄 아래로 이동  
k<Up>  커서를 한 줄 위로 이동  
l<Right>  커서를 한 칸 오른쪽으로 이동  
<Backspace>  커서를 한 칸 왼쪽으로 이동  
<Space>  커서를 한 칸 오른쪽으로 이동  
-  커서를 이전 줄의 처음으로 이동  
+  커서를 다음 줄의 처음으로 이동  
<Return>  커서를 다음 줄의 처음으로 이동  
0  커서를 현재 줄의 맨 앞으로 이동  
$  커서를 현재 줄의 맨 끝으로 이동  
^  커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동  
w  커서를 다음 단어의 첫 글자로 이동  
e  커서를 다음 단어의 끝 글자로 이동  
b  커서를 이전 단어의 첫 글자로 이동  
W  w와 같음(문장 부호 무시)  
E  e와 같음(문장 부호 무시)  
B  b와 같음(문장 부호 무시)  
(  다음 문장의 처음으로 이동  
)  이전 문장의 처음으로 이동  
{  다음 문단의 처음으로 이동  
}  이전 문단의 처음으로 이동  
H  커서를 화면 맨 위로 이동  
M  커서를 중간으로 이동  
L  커서를 맨 아래로 이동  


9. 편집 버퍼를 통한 이동    
^F  한 화면 아래로 이동  
^B  한 화면 위로 이동  
n^F  n화면 아래로 이동  
n^B  n화면 위로 이동  
^D  반 화면 아래로 이동  
^U  반 화면 위로 이동  
n^D  n줄만큼 아래로 이동  
n^U  n줄만큼 위로 이동  


10. 셸 명령 실행    
:!command  vi를 중단하고 지정한 셸 명령을 실행  
:!!  vi를 중단하고 이전의 셸 명령을 실행  
:sh  vi를 중단하고 셸을 실행  
:!csh  vi를 중단하고 새로운 C-셸을 실행  



11. 패턴에 의한 치환    
:s/pattern/replace/  현재 줄의 치환  
:lines/pattern/replace/  지정한 줄의 치환  
:line,lines/pattern/replace/  지정한 범위의 치환  
:%s/pattern/replace/  모든 줄의 치환  


12. 데이터 읽기  
:liner file  file의 내용을 지정한 줄 다음에 삽입  
:r file  file의 내용을 현재의 줄 다음에 삽입  
:liner !command  command의 결과를 지정한 줄 다음에 삽입  
:r !command  command의 결과를 현재의 줄 다음에 삽입  
:r !look pattern  지정한 pattern으로 시작된 단어 삽입  


13. 정규 표현식을 사용하기 위한 특수 기호    
.
뉴라인을 제외한 모든 단일 문자와 대응

*
영 또는 그 이상의 선행 문자와 대응

^
줄의 시작과 대응

$
줄의 끝과 대응

\<
단어의 시작과 대응

\>
단어의 끝과 대응

[ ]
묶여진 문자중의 하나와 대응

[^ ]
묶여진 문자를 제외한 아무것하고나 대응

\
이어지는 기호를 문자 그대로 해석


14. 줄 번호    
nG  줄번호 n으로 건너뛰기  
1G  편집 버퍼의 첫 줄로 건너뛰기  
G  편집 버퍼의 마지막 줄로 건너뛰기  
:map g lG  g가 lG와 같도록 매크로 정의  

15. 삽입    
i  입력 모드로 전환, 커서 위치 앞에서 삽입  
a  입력 모드로 전환, 커서 위치 뒤에서 삽입  
I  입력 모드로 전환, 현재 줄의 앞에 삽입  
A  입력 모드로 전환, 현재 줄의 끝에 삽입  
o  입력 모드로 전환, 현재 줄의 아래에 전개  
O  입력 모드로 전환, 현재 줄의 위에 전개  

16. 편집하고 있는 파일을 바꾸기    
:e file  지정한 파일의 편집  
:e! file  지정한 파일의 편집, 자동 점검의 생략  

17. 내용 고치기    
r  단지 한 글자만 변경(입력 모드로 바뀌지 않음)  
R  입력하는 대로 겹쳐 써서 변경  
s  삽입에 의해 한 단어의 변경  
C  커서의 위치로부터 줄 끝까지 삽입에 의한 변경  
cc  전체 줄을 삽입에 의한 변경  
S  전체 줄을 삽입에 의한 변경  
cmove  커서부터 move까지 삽입에 의해 변경  
~  대,소문자 바꾸기  


18. 고치기의 취소 또는 반복    
u  편집 버퍼를 수정했던 마지막 명령을 취소  
U  현재 줄을 저장  
.  편집 버퍼를 수정했던 마지막 명령 반복  

19. 문자 삭제    
x  커서가 있는 문자 삭제  
X  커서의 왼쪽 문자 삭제  
D  커서부터 줄의 끝까지 삭제  
dd  현재 줄의 전체 삭제  
dmove  커서부터 move까지 삭제  
dG  커서부터 편집 버퍼의 끝까지 삭제  
d1G  커서부터 편집 버퍼의 맨 앞까지 삭제  
:lined  지정한 줄의 삭제  
:line, lined  지정한 범위의 삭제  

20. 여러 줄의 복사와 이동    
:linecotarget  지정한 줄을 복사하여 target 줄 밑에 삽입  
:line, linecotarget  지정한 범위를 복사하여 target 줄 밑에 삽입  
:linemtarget  지정한 줄로 이동하여 target 줄 밑에 삽입  
:line, linemtarget  지정한 범위로 이동하여target 줄 밑에 삽입  

21. 데이터를 처리하기 위한 셸 명령의 사용    
n!!command  n번 줄에서 command의 실행  
!move command  커서부터 move까지 command 실행  
!move fmt  커서부터 move까지 줄들을 형식 맞추기  

22. 데이터 저장하기  
:w  원래의 파일로 데이터를 저장  
:w file  지정한 파일로 데이터를 저장  
:w>> file  지정한 파일에 데이터를 추가  

반응형
반응형
내가 애용하는 VIM 에서 정규표현식을 사용하는 방법이다.

너무나도 강력한 에디터인 VIM이다..ㅎㅎ 알면 알수록

[범위]/s/[target pattern]/[replacing pattern]/[옵션] [카운트]


옵션
c : 치환전 확인
g : 글로벌 치환
p : 치환된 마지막 라인 출력

예제
:1,10s/yes/no/g 처음 10행 치환
:%s/[Hh]ello/Hi/gc 치환 확인 물음
:s/Fortran/\U&/ 3 다음 3행의 "Fortran"을 대문자로 치환
:g/^[0-9][0-9]*/s//Line &:/ 숫자가 있는 모든라인에 Line: 추가

----------------------
[vi] 파일 오가며 편집하기
----------------------
:e#

"f4yy → :w → :e other_file → "fp
:f 버퍼에 4라인 복사후 붙이기
"F6yy
:f 버퍼에 6라인 추가

반응형
반응형
나는 VIM을 쓴다. 편하니까. 안써본 사람들은 중독성 강한 이 프로그램을 잘 모른다..

최근에 파일 열다가 황당했다 완전 전부 깨지는 것이 아닌가.. UTF-8 때문이었다.

찾다 보니 VIM에서 바로 해결 가능한 좋은 방법이 있었다.

VIM을 실행한 상태에서 두 명령만 내리면 된다.

set tenc=korea
set enc=utf-8

역시 VIM은 좋다. ㅋㅋ
반응형
반응형
어디에선가 보고 나름대로 내가 쓰기 편하고 좋은 것들만 뽑아서 정리한 것들이다

다른 좋은 것들도 있지만 실상 잘 안써서..(뭐 사실 몰라서 못쓰는게 맞다, 방대한 기능을 활용못하는..ㅋㅋ)

이정도만~ 어쨌든 출처는 그리 자랑스럽지 못한 나의 개인 홈페이지다.

1번은 적당히 추가하고 나머진 파일 만들어서 1번 파일 있는데다 넣으면 끝.

http://eph.pe.kr/zboard/bbs/view.php?id=linux&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=40&PHPSESSID=fbfdf252c38bcdb05d845562a0d6340f
(참 길기도 하지..)

1번은 적당히 추가하고 나머진 파일 만들어서 1번 파일 있는데다 넣으면 끝.
1번은 원래 있는 파일이고 나머진 만든 파일이니 이름은 자기 마음대로~~

1. _vimrc

-----------------------------------------------------------------
"My Setting
source $VIMRUNTIME/../ephron_config.vim
source $VIMRUNTIME/../MyMapFunction.vim
source $VIMRUNTIME/../CustomFunction.vim
-----------------------------------------------------------------

2. ephron_config.vim
-----------------------------------------------------------------
set tags=./tags
set nu
set ci
set ai
set si

set sw=4
set ts=4
if has("gui_running")
        set lines=50
        set co=120
endif
"End of My Settings

"Customizing My Color Setting
colorscheme desert

"Customizing Plugin Setting
-----------------------------------------------------------------

3. CustomFunction.vim
-----------------------------------------------------------------
if version >= 500
func! GetTodayDate()
        exe "read !date/t|sed 's/-//g'"
endfunc
endif
-----------------------------------------------------------------

4. myMapFuction.vim
-----------------------------------------------------------------
map <F1> v]#ezf
map <F2> v]}zf
map <F3> zo
map <F9> a// EPHRON_<Esc>:call GetTodayDate()<CR> + kkkJxA
"map <F11> :25vs ./<CR>:set nonumber<CR>^Ww
map <F11> :WMToggle<cr>

"방향키 설정
-----------------------------------------------------------------

반응형

+ Recent posts