vim 에서 text 문서를 보거나, code 를 작성하고 관련 comment 를 영어로 남기는 경우에 spelling 확인하는 방법이 있다.

vim 7 버전에서 추가된 기능이며, 이후버전에서 간단히 사용 가능하다.


:set spell spelllang=en_us


spell 이 틀린 경우, 붉은색 박스로 표시된다.


아주 간단히 사용할 수 있는 vim tip.


원본 링크는: https://www.linux.com/learn/using-spell-checking-vim

'Development Tip' 카테고리의 다른 글

Git add -p 로 수정사항 분리하기  (0) 2014.04.16
Git: 특정 commit 으로 이동 후, amend 하기  (0) 2014.02.28
const char* vs. char const*  (0) 2014.02.19
Fish shell environment  (0) 2013.12.03
Kernel mailing list 활용 방법  (0) 2013.11.08

Git add -p 로 수정사항 분리하기


git commit 은 하나의 수정 사항을 반영 하는 것이 Kernel 과 같은 대형 project 에 merge 될 확률이 높다. 이는 kernel에 Documentation/SumittingPatches 의 3번(Separate your changes.)의 내용을 보면 알 수 있다.


하지만 수정을 하다 보면, 하나의 commit 내부에 두 개 이상의 bug 수정이 있을 수 있다. 이런 경우 여러 개의 Commit 으로 분리하는 방법을 작성해 본다.


최근 Kernel patch 를 만드는 과정에서 Maintainer 가 두 개로 분리해달라는 요청이 있었고, 이를 위해 고민하다 검색으로 찾아낸 방법이다.


이미 하나의 commit 으로 내 local branch 에 있다. 이 commit 을 두 개로 분리했던 과정을 살펴본다.


1. 내 commit 이전으로 돌아간다.

  - 이 때, 분리하려는 commit 이 최상위에 있어야 한다. 만약 최상위가 아니라면 http://woodz.tistory.com/75 여기를 참고하시면 된다.

$ git reset HEAD^

이렇게 하면, 최상위에서 바로 전의 commit 으로 reset 이 되고 내 수정 사항은 un-stage 된다.


현재 상황은, 아래와 같다. 아래서 위쪽 code block 과 아래쪽을 분리하여 commit 할 것이다.

$ git diff

diff --git a/kernel/workqueue.c b/kernel/workqueue.c

index 0ee63af..0679854 100644

--- a/kernel/workqueue.c

+++ b/kernel/workqueue.c

@@ -4087,10 +4087,7 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,

                if (cpumask_equal(cpumask, pwq->pool->attrs->cpumask))

                        goto out_unlock;

        } else {

-               if (pwq == wq->dfl_pwq)

-                       goto out_unlock;

-               else

-                       goto use_dfl_pwq;

+               goto use_dfl_pwq;

        }


        mutex_unlock(&wq->mutex);

@@ -4100,7 +4097,8 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,

        if (!pwq) {

                pr_warning("workqueue: allocation failed while updating NUMA affinity of \"%s\"\n",

                           wq->name);

-               goto out_unlock;

+               mutex_lock(&wq->mutex);

+               goto use_dfl_pwq;

        }


        /*


이 상태에서 "git add -p" 를 입력하면, 

$ git add -p

diff --git a/kernel/workqueue.c b/kernel/workqueue.c

index 0ee63af..0679854 100644

--- a/kernel/workqueue.c

+++ b/kernel/workqueue.c

@@ -4087,10 +4087,7 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,

                if (cpumask_equal(cpumask, pwq->pool->attrs->cpumask))

                        goto out_unlock;

        } else {

-               if (pwq == wq->dfl_pwq)

-                       goto out_unlock;

-               else

-                       goto use_dfl_pwq;

+               goto use_dfl_pwq;

        }


        mutex_unlock(&wq->mutex);

Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? n


알아서 한 블럭씩 분리하여 더 나눌 것인지, 아니면 이부분을 하나의 Commit 으로 만들 것인지 물어본다.

나는 아래의 block 을 먼저 commit 하고 이 부분을 나중에 commit 하려고 한다. 그래서 "n" 을 입력했다.

n 을 입력하면, 

@@ -4100,7 +4097,8 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,

        if (!pwq) {

                pr_warning("workqueue: allocation failed while updating NUMA affinity of \"%s\"\n",

                           wq->name);

-               goto out_unlock;

+               mutex_lock(&wq->mutex);

+               goto use_dfl_pwq;

        }


        /*

Stage this hunk [y,n,q,a,d,/,K,g,e,?]? y

다음 block 의 code를 할 것인지 연속적으로 물어본다. 여기서 "y" 를 입력하면 이 부분만 git add 가 된다.


확인을 해보면,

$ git status

# Not currently on any branch.

# Changes to be committed:

#   (use "git reset HEAD <file>..." to unstage)

#

#       modified:   kernel/workqueue.c

#

# Changes not staged for commit:

#   (use "git add <file>..." to update what will be committed)

#   (use "git checkout -- <file>..." to discard changes in working directory)

#

#       modified:   kernel/workqueue.c

#

위에서 처럼 일부는 add 가 되고 나머지는 un-stage 상태가 된다. 


그 다음에

$ git commit -s

제목 쓰고.. 내용 쓰고.. 저장 하고 나온다.


또 그 다음에 나머지 수정 사항을 기록 한다.

$ git add

$ git commit -s

제목 쓰고.. 내용 쓰고.. 저장하고 나온다.


그렇게 하면 의도했던 대로 하나였던 commit 이 두 개로 분리가 된다.


사실 이렇게 하지 않아도 되는데, 지저분하거나 혹은 새로 작성해야 하는 문제가 발생한다. 물론 위와 같은 예제는 간단해서 다시 작성해도 되긴 하지만, 이와 같은 방법을 사용하면 이미 잘 작성된 code 에 실수 등이 발생하지 않을 것이다.(code는 건들지도 않으니.. 물론 분리를 잘못하면 발생하는 문제는 있긴 하다. :-) )


이렇게 해서 patch 를 보내면 된다. 



'Development Tip' 카테고리의 다른 글

VIM 에서 spelling 확인하기  (0) 2016.07.08
Git: 특정 commit 으로 이동 후, amend 하기  (0) 2014.02.28
const char* vs. char const*  (0) 2014.02.19
Fish shell environment  (0) 2013.12.03
Kernel mailing list 활용 방법  (0) 2013.11.08

Git: 특정 commit 으로 이동 후, amend 하기


Git 으로 local branch 를 생성 한 후, 특정 source 를 수정함에 있어 여러개의 commit 이 만들어 질 수 있다.

이 때, 기존에 했던 commit 에 추가적인 수정을 하려면 git add/commit --amend 를 하면 되는데 최상위에 있는

commit 은 바로 수정 후, git add/git commit --amend 하면 적용이 되지만 현재 수정하려는 내용이 이전에 있던 commit 에 반영되었으면 하는 경우가 발생한다.


예를 들어, 아래와 같이 commit 들이 있다고 가정하자.

commit ec88cc08f5a29f98a3c5f14ca642f235fb1c0fb8

Author: Daeseok Youn <daeseok.youn@gmail.com>

Date:   Fri Feb 28 15:34:22 2014 +0900


    staging: cxt1e1: fix checkpatch errors with open brace '{'


    clean up checkpatch.pl error:

     ERROR: that open brace { should be on the previous line


    Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>


commit 6007a41fffd430b79775871a2c9eb6c35eb3e6a6

Author: Daeseok Youn <daeseok.youn@gmail.com>

Date:   Fri Feb 28 15:27:51 2014 +0900


    staging: cxt1e1: fix checkpatch error 'assignment in if condition'


    checkpatch.pl error:

     ERROR: do not use assignment in if condition


    Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>


commit aa877600a98048d056b65d0c9e7426616e9ccc2f

Author: Daeseok Youn <daeseok.youn@gmail.com>

Date:   Fri Feb 28 15:22:13 2014 +0900


    Staging: cxt1e1: Fix line length over 80 characters in hwprobe.c


    clean up checkpatch.pl warnings:

     WARNING: Line length over 80 characters


    Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>


commit 2f61d921981a45c687e5dc26d6f7e6a3925ca0e5

Author: Daeseok Youn <daeseok.youn@gmail.com>

Date:   Fri Feb 28 15:14:39 2014 +0900


    staging: cxt1e1: Fix no spaces at the start of a line in hwprobe.c


    clean up checkpatch.pl warnings:

    WARNING: please no spaces at the start of a line in


    Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>


이 때, 추가적인 수정사항이 발생 되었는데, 이 내용이 맨 아래에 있는 "staging: cxt1e1: Fix no spaces at the start of a line in hwprobe.c" 에 적용되었으면 하는 바램이 생겼다.


그렇다면, 일단 그 commit 을 수정할 수 있는 mode(?) 로 가야한다.

$ git rebase --interactive 2f61d921981a45c687e5dc26d6f7e6a3925ca0e5^

라고 한다. 맨 마지막에 "^" 를 넣어줘야 그 commit 을 포함하여 rebase  를 진행한다.


위에서 처럼 입력하면, 나의 경우는 vim 이 열리면서 아래와 같은 내용이 입력된다.

pick 2f61d92 staging: cxt1e1: Fix no spaces at the start of a line in hwprobe.c

pick aa87760 Staging: cxt1e1: Fix line length over 80 characters in hwprobe.c

pick 6007a41 staging: cxt1e1: fix checkpatch error 'assignment in if condition'

pick ec88cc0 staging: cxt1e1: fix checkpatch errors with open brace '{'


# Rebase b9ea35b..ec88cc0 onto b9ea35b

#

# Commands:

#  p, pick = use commit

#  r, reword = use commit, but edit the commit message

#  e, edit = use commit, but stop for amending

#  s, squash = use commit, but meld into previous commit

#  f, fixup = like "squash", but discard this commit's log message

#  x, exec = run command (the rest of the line) using shell

#

# If you remove a line here THAT COMMIT WILL BE LOST.

# However, if you remove everything, the rebase will be aborted.

#


여기서 내가 수정하고 싶은 것은 맨 위에 있는 commit 이다. "pick" 을 "edit" 로 변경하고 저장 하고 나와 git log를 하면

최상위에 그 commit 이 올라와 있다. 


이제 원하던 수정을 하자.


수정이 완료되면,

$ git add <file>

$ git commit --amend


이렇게 하면 일단 현재 원하던 commit 에 추가 반영이 된다.


이제 원래 갖고 있던 commit 들을 복구 해야 한다.

$ git rebase --continue


이렇게 하면 수정한 commit 이 후에 생성된 commit 들을 merge 하기 시작한다. 하나씩 merge 를 하다가 conflict 날 수 있다.

그러면 rebase 가 중지 되고, conflict 를 해결 한 후에 다시 git rebase --continue 를 입력하라고 한다.


이렇게 해서 마지막으로

Successfully rebased and updated ref/heads/<local branch name>

이라고 나오면 성공한 것이다.



'Development Tip' 카테고리의 다른 글

VIM 에서 spelling 확인하기  (0) 2016.07.08
Git add -p 로 수정사항 분리하기  (0) 2014.04.16
const char* vs. char const*  (0) 2014.02.19
Fish shell environment  (0) 2013.12.03
Kernel mailing list 활용 방법  (0) 2013.11.08

const char* vs. char const*


code 를 보다 보니 C/C++ 에서 사용하는 const 에 대한 내용은 알고 있지만, 막상 보면 어디가 상수로 결정되어 수정될 수 없는지 계속 찾아 보게된다. 


그래서 검색을 해보았더니, 예제로 잘 정리된 내용이 있어 갖고 왔다.

original url : http://stackoverflow.com/questions/162480/const-int-vs-int-const-as-function-parameter-in-c-and-c


아래서 처럼 const int 와 int const 는 같은 의미로 사용되어 진다.

const int a = 1; // read as "a is an integer which is constant"
int const a = 1; // read as "a is a constant integer"

그래서 아래와 같이 2를 넣을 수 없다.

a = 2; // Can't do because a is constant

하지만 pointer 변수일 때는 다르게 해석이 되는데, 하나는 주소값을 변경하지 못하는 것과 다른 하나는 주소가 가리키고 있는 값의 변경을 할 수 없는 것이다. 아래의 주석을 잘 읽어보면 이해가 될 것이다.

const char *s;      // read as "s is a pointer to a char that is constant"
char c;
char *const t = &c; // read as "t is a constant pointer to a char"

*s = 'A'; // Can't do because the char is constant
s++;      // Can do because the pointer isn't constant
*t = 'A'; // Can do because the char isn't constant
t++;      // Can't do because the pointer is constant


Install Fish Shell on Ubuntu


Fish shell 이라는 것이 생겼다. 이 shell 의 가장 큰 특징은 자동 완성기능인데, 특정 command 의 man page를 parsing 해서 option 까지 자동완성해준다. 기본적으로 현재 typing 하고 있는 command 의 hint 기능도 있다. 


또 하나 큰 특징은 shell 에서 script 작성 및 실행이 가능하다는 것이다.(command line 에서 편집기 editor 처럼 동작이 가능하다는 것이다!) 


이러한 모든 기능의 설명은 http://fishshell.com/docs/current/index.html 에서 확인할 수 있다.


여기서는 ubuntu 에 fish shell 의 설치 방법과 간단한 기능들을 살펴 본다.

(Bash shell 에서 지원하는 것은 일단 다 지원하는 듯 하다)


1. Installation.

sudo apt-add-repository ppa:fish-shell/release-2

$ sudo apt-get update

$ sudo apt-get install fish


2. 실행

$ fish


3. 기본 shell 로 등록

$ chsh -s /usr/bin/fish


2 번 실행으로 사용하다가 괜찮다 싶으면 기본 shell 로 등록해서 사용하면 될 것이다.


4. Commands hint



위에 그림 처럼 최근 history base 로 vi 를 입력했을 때 회색으로 되어 있는 부분이 자동 완성 될 문장이다. 간단히 화살표 오른쪽을 누르면 그  command 를 바로 이용할 수 있다.(화살표 위/아래를 하면 vi 와 관련된 history command 들간 이동이 가능하다.)


5. Edit script



쉘에서 바로 script 를 작성할 수 있다. 위의 그림처럼 간단히 작성 가능하고 위/아래로 움직여서 수정도 가능하다. 정말 editor 처럼 동작한다.

실제 예로는 현재 시점에서 prompt 모양을 변경할 경우 이렇게도 사용할 수 있을 것이다.

(나머지는 http://fishshell.com/docs/current/index.html 으로 이동해서 확인 바란다.)


'Development Tip' 카테고리의 다른 글

Git: 특정 commit 으로 이동 후, amend 하기  (0) 2014.02.28
const char* vs. char const*  (0) 2014.02.19
Kernel mailing list 활용 방법  (0) 2013.11.08
PuTTY 설정 값 공유하는 방법  (0) 2013.10.07
Git with eclipse  (0) 2013.04.04

Kernel mailing list 활용 방법


예전 arm linux kernel 에 mailing list 에 subscribe 하여 email 로 patch 의 내용을 볼 수 있도록 하는 방법을 포스팅 한 적이 있다. (http://woodz.tistory.com/27


하지만 하루에도 너무 많은 내용의 patch 와 답글들이 난무하여 모두 보기엔 너무 많고, 골라보기엔 뭘 골라야 하는지도 몰라서 그냥 한달동안 받은 편지함에 쌓이는 메일을 방치하다 unsubscribe 를 하여 더이상 메일을 받지 않았다.


얼마전에 알게된 것인데, kernel mailing list 는 전체가 아닌 부분(part 별로)으로 mailing service 를 신청할 수 있는 방법이 있었다. 관심있는 것 한두개 정도만 등록해서 메일을 받아 보는 것이 효과적일 듯 하여 한번 신청을 해보았다.


두개를 등록했는데, 하루에 많으면 30개 정도 적으면 10개도 안되어 틈틈히 보면 좋을 것으로 보인다.


등록 절차는 간단하다.

1. http://vger.kernel.org/vger-lists.html 에 접속하여, 어떤 mailing list group 가 있는지 확인 한다.

   약 150개 group 이 있었다. group 별로 따로 설명은 없지만, group 이름만 봐도 어떤 내용인지 알수 있을 것이다.


2. 그 중에 일단 고른다. 저는 linux-mm(memory management) 를 선택했다.

아래 처럼 나와있다. 설명은 없지만, archives link 가 있으니 방문하여 어떤 patch 들이 들어오는지 확인 해보고 구독해도 될 것이다.

List: mm-commits;     ( subscribe / unsubscribe )
Info:
  
Archives:
	http://marc.info/?l=linux-mm-commits
	http://www.spinics.net/lists/mm-commits/
Footer:
  
--- 
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

121 


3. subscribe 를 누르면 PC 의 emali client 가 구성해주지만, 없다면 gmail 이나 쓰는 메일에서 편지 쓰기하여 보낼 수 있다.

편지 쓰기를 하여, 


보내는 사람 : <your-email>@mail.com

받는 사람 : majordomo@vger.kernel.org

제목은 안씁니다.

내용 : subscribe mm-commits


위에 처럼 간단히 메일을 써서 보내면 됩니다. 물론 "subscribe mm-commits" 는 plan/text 로 보내야 하며, space 이외에 enter 등으로 분리하시면 안될 것입니다.


그러면 약 3분 뒤에,

Majordomo results 의 제목에 mail 이 옵니다. 메일을 정확히 보냈다면 이메일은 신경 안써도 됩니다.

(봇이 보내는 check mail 입니다. 다 읽어 보지도 않았습니다. ㅎㅎ)

그리고 조금 더 뒤에 아래와 같이 확인 메일이 옵니다.
(확인이 되어야 가입이 됩니다.)

--

Someone (possibly you) has requested that your email address be added
to or deleted from the mailing list "mm-commits@vger.kernel.org".

If you really want this action to be taken, please send the following
commands (exactly as shown) back to "Majordomo@vger.kernel.org":

        auth abcdefg subscribe mm-commits your-email@mail.com

If you do not want this action to be taken, simply ignore this message
and the request will be disregarded.

If your mailer will not allow you to send the entire command as a single
line, you may split it using backslashes, like so:

        auth abcdefg subscribe mm-commits \
        your-email@mail.com

If you have any questions about the policy of the list owner, please
contact "mm-commits-approval@vger.kernel.org".

Thanks!


위의 메일을 받게 된다면 다시한번 majordomo@vger.kernel.org 에 메일을 보내야 한다.

메일은,
받는 사람 : majordomo@vger.kernel.org
보내는 사람 : your-email@mail.com
제목은 비워두시면 됩니다.
내용 :
auth abcdefg subscribe mm-commits your-email@mail.com

제가 잘보이라고 빨간색으로 한겁니다. auth  에서 시작해서 맨 한 줄을 메일 내용에 복사 & 붙여넣기 하면 됩니다.
이것또한 줄바꿈없이 복사 만 딱해서 보내시면 됩니다. 아래의 줄바꿈을 하려면 역슬래쉬(\) 를 넣어주세요 하는데 그냥 한줄로 보내자.

위에 처럼 보내면 약 5분내로 가입 메세지를 보내주고 이제 메일링 서비스를 받을 수 있습니다.

Welcome to mm-commits


Welcome to the mm-commits mailing list!

Please save this message for future reference.  Thank you.

If you ever want to remove yourself from this mailing list,
you can send mail to <Majordomo@vger.kernel.org> with the following
command in the body of your email message:

    unsubscribe mm-commits

or from another account, besides your-email@mail.com:

    unsubscribe mm-commits your-email@mail.com

If you ever need to get in contact with the owner of the list,
(if you have trouble unsubscribing, or have questions about the
list itself) send email to <owner-mm-commits@vger.kernel.org> .
This is the general rule for most mailing lists when you need
to contact a human.

 Here's the general information for the list you've subscribed to,
 in case you don't already have it:

Archives:
        http://marc.info/?l=linux-mm-commits


이제 틈틈히 올라오는 patch 들을 확인 할 수 있습니다. 저는 linux-mm 과 linux-janitor 두가지만 했습니다. ^^



'Development Tip' 카테고리의 다른 글

const char* vs. char const*  (0) 2014.02.19
Fish shell environment  (0) 2013.12.03
PuTTY 설정 값 공유하는 방법  (0) 2013.10.07
Git with eclipse  (0) 2013.04.04
Tips on Linux  (0) 2013.03.11

PuTTY 설정 값 공유하는 방법

Window 에서 ssh/serial 등 다양한 접속환경을 위해 사용하는 유명한 PuTTY application 의 설정 값을 저장하고 다른 컴퓨터에서 PuTTY application 에도 같은 설정값으로 사용할 수 있는 방법을 공유한다.


window 7 환경에서 작성됨.


1. 현재 설정값을 Local 파일로 저장

  - puTTY 는 설정값을 registry 에 저장한다

  - 설정값을 찾아보자. 찾는 방법은,

     a. Window Key  + r 또는 시작 ==> 실행

     b. regedt32 입력




   - puTTY 설정 값 찾기.

     a. 위치는 HKEY_CURRENT_USER/Software/Simon Tatham 이다.

     b. 간단히 Ctrl + F 를 눌러 검색어에 "Simon Tatham" 입력하면 찾아준다.(따옴표는 빼고 입력)



   - 찾기 완료.



   - 내보내기




   - 저장 하기




파일을 저장하고 다른 컴퓨터를 사용할 때, puTTY 설정 값을 그대로 갖고 오기 위해서는 그냥 실행만 하면 된다.

그럼 그 컴퓨터에 putty 설정값이 바로 load 된다.


Good!!!


참조 url:http://downloadsquad.switched.com/2007/02/01/howto-transfer-your-putty-settings-between-computers/


'Development Tip' 카테고리의 다른 글

Fish shell environment  (0) 2013.12.03
Kernel mailing list 활용 방법  (0) 2013.11.08
Git with eclipse  (0) 2013.04.04
Tips on Linux  (0) 2013.03.11
Tips for VIM  (0) 2013.02.21

Eclipse project 를 할 때 사용할 수 있는 Egit 을 소개하는 url 을 남긴다.


Egit으로 git repository를 control 하는 중요한 부분은 모두 소개를 해놓을 듯.


http://www.vogella.com/articles/EGit/article.html


'Development Tip' 카테고리의 다른 글

Kernel mailing list 활용 방법  (0) 2013.11.08
PuTTY 설정 값 공유하는 방법  (0) 2013.10.07
Tips on Linux  (0) 2013.03.11
Tips for VIM  (0) 2013.02.21
Use gerrit with git push command.  (0) 2013.02.20

Reference : http://www.commandlinefu.com


위의 site 에서 쓸만한 녀석들만 모아서~


1. clear terminal screen

$ <ctrl> l

  - 그냥 ctrl + l (영문자 L 의 소문자)


2. 많이 쓴 command 를 출력해주는 script

$ history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head


3. 마지막 command 입력한 것을 script로 만들어줌.

 echo "!!" > foo.sh


4. 빠른 파일 이름 변환

$ mv filename.{old,new}


5. googlecl(google command line 사용법)

  - google 이 제공하는 service(docs, contact, calendar 등) 을 command line 에서 사용가능 하도록 지원.

  - 설치해야하는 package

    a. googlecl : http://code.google.com/p/googlecl/downloads/list 에서 최신버전

    b. gdata : https://code.google.com/p/gdata-python-client/downloads/list 에서 최신버전


위의 page에 접속해서 각각의 설치 방법을 활용


둘다 설치가 완료되었다면, google docs 를 vim 으로 editing 할 수 있는 방법이 있다. 다른 service 를 command 로 이용하는 방법은 http://code.google.com/p/googlecl/wiki/Manual 에 참조


$ google docs edit --title "Kernel Study" --editor vim

 최조 인증 확인을 하는데, 실행하면 login 화면이 browser를 통해 뜨고 로그인하면 인증번호를 제공함. 제공된 인증번호를 넣고 enter 하면 vim 에 docs의 내용과 함께 수정 가능하게 됨. 수정 이 후, 저장하고 종료하면 docs.google.com 에 특정 문서가 반영이 됨. 

'Development Tip' 카테고리의 다른 글

PuTTY 설정 값 공유하는 방법  (0) 2013.10.07
Git with eclipse  (0) 2013.04.04
Tips for VIM  (0) 2013.02.21
Use gerrit with git push command.  (0) 2013.02.20
Autoloading Cscope Database(cscope.out file)  (0) 2013.02.06

1. 한 line 의  character 가 80 자 이상인 것만 검색

  /\%>80v.\+


2. 한 line의 character 가 25 자 이하인 것만 검색

  /^.\{,25}$/

'Development Tip' 카테고리의 다른 글

Git with eclipse  (0) 2013.04.04
Tips on Linux  (0) 2013.03.11
Use gerrit with git push command.  (0) 2013.02.20
Autoloading Cscope Database(cscope.out file)  (0) 2013.02.06
Google Site Tool : File repository  (0) 2012.10.29

+ Recent posts