2015년 6월 26일 금요일

포토샵 강좌 150704 ~ 150726

포토샵 강좌 150704 ~ 150726


양태호님이 예술놀이님의 사진을 공유했습니다.
55분 · 
실무만 17년 한 능력자에게 포토샵을 배울 수 있는 기회
"저건 포토샵으로 해서 저렇게 이쁜거야."
 
일을 할 때, 또 학교 과제를 할 때 항상 만났던
'내가 포토샵만 할 줄 알았더라도..!!' 했던 아쉬움 가득한 순간들.
 
이제 그만 아쉬워하고 예술놀이와 함께 해요. smile 이모티콘
 
 
<내가 원하던 포토샵 - 초급편 1기>
 
[함께 해요]
- 수업, 공모전에서 발표 자료를 좀 더 멋있고 이쁘게 만들고픈 학생분들!
- 디자이너의 부재로 온라인 디자인 툴에서 해매고 있는 스타트업 운영자분들!
- 무조건 포토샵을 다룰 줄 알아야 하는 상황에 있는 신입사원분들!
- 그 외 4주 만에 포토샵으로 능숙하게 작업을 하고 싶은 모든 분!
 
 
[일정]
- 7월 4일(일) ~ 7월 25일(일) (총 4회)
- 토요일 오전 11시 ~ 오후 1시
 
 
[장소]
- 예술놀이 아지트(6호선 망원역 인근)
 
 
[수강료]
- 10만원(4회 기준)
 
 
[세부 내용 및 신청서]
- 링크: http://goo.gl/forms/Rq9pqMReiw
 
 
[문의]
- enjoy@yesulnori.com
 
 
Play with Arts!
예술놀이

2015년 6월 15일 월요일

스크랩 :: VIM 활용 :: 복수의 문자열의 하나의 문자열로 바꾸기 혹은 복수의 문자열로 바꾸기


4. 복수의 문자열을 하나의 문자열로 바꾸기

이것은 결국 위의 정규표현식을 사용한 패턴을 특정한 문자열로 바꾸는 것이다. 웬만한 vi 기초 문서에서 간단하게라도 다루는 내용이다.
:%s/[vV]i//g   - vi 또는 Vi 를 null string 으로 치환한다. 즉 삭제한다.
:%s/<.*>//g    - html 화일에서 태그를 제거하는 경우인데, 이렇게 쓰면 내용 라는 줄이 있을 때 죄다 지워질 것이다. 
                 따라서 <.*> 대신에 <.\{-}> 를 쓰는 게 낫다.
::%s/\(gnu\|Gnu\)/GNU/g  - gnu 또는 Gnu 를 GNU 로 치환
간단한 것이니 이 정도로 통과.

[edit]5. 복수의 문자열의 복수의 문자열로 바꾸기

사실 이 얘기를 하고 싶었던 것인데... 이것만 덜렁 쓰기가 뭣해서 서론이 장황해졌다.
핵심은, 괄호를 사용하여 찾는 문자열 쪽에 그룹을 지정한 후에, 바꿀 문자열 쪽에서 그 그룹을 부를 수 있다는 것이다.
\0 은 찾은 문자열 전체
\1 은 첫번째 괄호
\2 는 두번째 괄호
\3 은 세번째 괄호
...
괄호의 순서는 여는 괄호 "(" 의 순서로 따진다. 또 . 나 [list] 등이 괄호안에 있을 경우는 실제로 검색된 문자열을 의미한다는 것에 유의. 즉 abef 라는 스트링이 있고 \(ab\|cd\)ef 로 검색했다면 \1 은 ab 가 된다.
다음과 같은 경우를 생각해 보자. html 화일 안에 수십개의 링크가 다음과 같이 나열되어 있다.
  • aaa
  • bbb
  • ccc ...
  • 이것을 내가 위키위키 페이지에 옮기려 한다. (사실 위처럼 깔끔하게 되어 있으면 그냥 html 코드를 써도 되겠지만)
    * [http://www.aaa.com aaa]
    * [http://www.bbb.com bbb]
    * [http://www.ccc.com ccc]
    ...
    
    다음의 한 줄로 만사형통.
    :%s/
    
  • \(.\{-}\)<\/a>/* [\1 \2]/g

  • 관련 링크:

    2015년 6월 5일 금요일

    [스크랩] vi 텍스트 찾기 바꾸기 관련 명령어 모음

    vi 텍스트 찾기 바꾸기 관련 명령어 모음



    멀뚱이의 아바타

    vi 텍스트 찾기와 바꾸기 명령어를 인터넷에서 검색해 보았습니다. 하도 산재되어 있어서 한 군데로 모은 것입니다.
    1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
    :%s/char/_&_/g
    2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
    :.,$s/char/_&_/g
    3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다.
    :1,10s/buf_.*\[255\]/hello/g
    4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.
    /^\d\+$
    ^ : 행의 첫부분
    \d : 0~9까지의 숫자
    + : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
    $ : 행의 마지막 부분
    5. 전체 문서에서 add 를 plus로 치환
    :s/add/plus/g
    6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환
    :s/\/etc\//\/etc\/local\//g
    7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.
    :%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g
    8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.
    :%s/foo/bar/i
    9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.
    :%s/\/bar
    10. 정렬
    123 def ghi
    432 ius dkf
    089 cdo lks
    이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면
    :%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g
    11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.
    /[0123456789]\{3,5\} 또는
    /[0-9]\{3,5\}
    12. 만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.
    :%s/ab[a-z]*//g
    13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.
    :g/cpu/d
    # g는 모든 라인에 적용한다라는 의미이고,
    # d는 delete를 의미합니다.
    14. stat0,stat1.....stat9 패턴이 있는 라인을 모조리 지우기
    :g/stat[0-9]/d
    15. 빈 줄 두 줄을 한 줄로 바꾸기
    :%s/\n\n/\n/g
    16. 두 칸을 한 칸으로 줄이기
    :%s/ / /g
    17. 탭을 스페이스 공백으로 바꾸기
    :%s/\t/ /g
    18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기
    :%s/ $//g 또는
    :%s/ \n/\n/g
    19. 줄 첫 칸의 띠어쓰기를 없애기
    :%s/^ //g
    20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.

    dopesoul의 아바타

    찾기 시 블록 해제하는 방법은?

    search 후엔 꼭 블록이 남더라구요. 이 블록을 해제하는 방법은 없습니까?
    저같은 경우는 전혀 검색될 문자가 아닌 것들을 타이핑하여 블록을 해제하곤 하는데요
    명령어로 존재하는지 궁금하네요.

    g0rg0n의 아바타

    저도 그냥 /wtfbbq

    저도 그냥 /wtfbbq 이런식으로 빨리찾기 해서 없애요;;;
    18

    ahsan의 아바타

    nohlsearch

    :nohlsearch
    쓰고 놓고 보니 밑에 있어서 지울려는데 지울수가 없네요

    누굴까?의 아바타

    :noh를 쓰면 블록이

    :noh를 쓰면 블록이 없어집니다.

    karkayan의 아바타

    :set nohlsearch 를

    :set nohlsearch 를 하시면 검색할 때 블록이 안생기도록 합니다.

    Palsuet의 아바타

    별로 아는 건 없지만

    별로 아는 건 없지만 사족을 조금 달자면, 5번에
    :s/add/plus/g

    는 전체문서에 적용되는 게 아니고 현재 커서가 있는 줄에만 적용됩니다. 전체 문서에 적용하려면 다음과 같이 해야 합니다.
    :%s/add/plus/g

    또는
    :g/add/s//plus/g

    6번도 마찬가지로 커서가 있는 줄에만 적용되고, 덧붙여서 이 경우에는 다음과 같이 하는게 더 편합니다.
    :s$/etc/$/etc/local/$g

    $말고도 여러가지 문자를 쓸 수 있습니다. :나 & 등등. 그리고 u를 눌러 취소했는데(undo), 다시 하고 싶다면 (redo) Ctrl+R을 누르면 됩니다.
    --
    feel the gravity
    feel the gravity

    geunhong의 아바타

    줄 뒤 공백문자들 모두 지우기

    - 줄 뒤 공백문자들 모두 지우기
    :%s/[ \n]*//g
    - 빈 줄 모두 삭제하기
    :g/^$/d

    1day1의 아바타

    관련이 있는

    치환(변환) 시에 이렇게는 안되는 것 같더라구요.(몰라서 일 수도 있음)
    etc 를 var 로 바꾸는 경우
    바꿀내용이 이런경우.
    /etc/bind/zone
    /var/lib/ /var/lib/etc
    /etc/bind   /etc/apache
    :%s/etc/var/g

    이면 어떻게 될까요? (가장 많이 쓰이겠죠)
    /var/bind/zone
    /var/lib/ /var/lib/var
    /var/bind   /var/apache

    이렇게 되겠죠.
    :%s/etc/var/

    이 경우는 g 플래그 가 빠진경우는.
    /var/bind/zone
    /var/lib/ /var/lib/var
    /var/bind   /etc/apache

    마지막 줄의 두번째 etc 는 바뀌지 않겠죠.
    :s/etc/var/

    % 가 없으면, 커서가 있는 줄만 바뀌겠죠.
    그런데, 
    /var/bind/zone
    /var/lib/ /var/lib/etc
    /etc/bind   /etc/apache

    처럼 처음의 etc 만 바꾸고 싶을때는 어떻게 하느냐 이것이 안되는 것 같습니다.
    물론 줄 번호를 안다면
    :1s/etc/var/

    이런식으로 s 앞에 줄번호를 모르는 경우에는 어떻게 할 방법이 없는 것 같습니다.
    "/" 로 먼저 찾고
    :s/etc/var/

    로 해당 커서에서 변환하면 되겠지만, 한번에는 안되는 것 같습니다.
    제가 모르고 있는 것인지도 모릅니다. ㅜㅜ
    .
    .
    .
    shell 스크립트 관련도 정리를 하면 좋겠습니다.
     F/OSS 가 함께하길.. (F/OSS서포터즈 : [[FOSS/Supporters]], [[FOSS/Supporters/Group]]) - 블로그 활성화 프로젝트 : 하루에 하나씩 블로그 글 남기기 -
    F/OSS 가 함께하길..

    lifthrasiir의 아바타

    :/etc/s/etc/var/라고 해

    :/etc/s/etc/var/라고 해 보세요.

    멀뚱이의 아바타

    질문 하나

    소문자 a가 포함되지 않은 줄만 모두 삭제하려면 어떻게 하면 될까요?
    ===
    JimyLinux

    예진아씨의 아바타

    그런 건 에디터에서보다 grep 으로 해결하시는 게 편합니다.

    grep 에서 -v 옵션을 사용하세요
    임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
        임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

    secretfrominternet의 아바타

    이런 내용에 대한 숙지도 필요한것이

    물론 간단한 쉘 명령어로 파일을 수정하는 방법도 좋겠습니다만, vi/vim 의 -c 커맨드를 이용하며 연속 vi 작업을 스크립트화 하여 사용하는것이 편리한 경우가 상당히 많습니다. 특히나 특정 파일에 대한 복잡다양한 작업들을 진행하는데는 실제로 쉘 파이프나 펄 정도를 이용하기에는 부담스러운 경우도 존재합니다. 사용자의 쉘/perl에 대한 숙련도 가 떨어지는 경우라면 더욱 심하겠지요.
    이러한 경우 이런 다양한 종류의 vi의 커맨드를 알고 있다면 이를 이용한 커맨드 스크립트를 작성하여 vi작업 역시 자동화할 수 있는 여지가 있고, 몇가지 커맨드 연속 사용만을 가지고도 특정 파일에 대한 복잡다양한 에디팅을 자동화할 수 있기에 vi의 커맨드에 대한 끊임없는 질의는 vi사용자 뿐만이 아니라 시스템 관리자에게도 많은 도움을 주는 좋은 쓰레드가 될 수 있습니다. ^^

    ====================어흥====================
    짖지마시고 말씀을 하세요.
    ..

    익명사용자의 아바타

    :%g!/a/d g : 다음이

    :%g!/a/d
    g : 다음이 패턴이 나타나는 줄에 대해 명령을 실행
    g! : 다음의 패턴이 나타나지 않는 줄에 대해 명령을 실행
    ...입니다.

    Prentice의 아바타

    :v/a/d %는 보통 생략

    :v/a/d
    %는 보통 생략 가능하고 g! 대신에 v를 쓸 수 있습니다.

    esrevinu의 아바타

    9번 HTML 태그 문자가 들어가서 안 보이는 것 같네요.

    :%s/\/bar/g
    --
    foldl (flip (:)) [] "universe"

    totohero의 아바타

    위에 소개된 것들이

    위에 소개된 것들이 sed 명령이죠? emacs에도 sed 명령을 바로 입력할 수 있는 함수가 있다면 좋겠다는 생각이 드네요. (물론 shell-command를 사용해도 되겠지만 결과를 간단히 테스트해보고 전체 적용한다든지 하는게 좀 불편하더라고요.)

    nonots의 아바타

    vi 중독에서 언제나 벗어나려나..

    저도 vi 에디터 하나로(?) 밥먹고 살다시피 하는데
    몰랐던 귀한 정보를 알게됐군요..
    고수님들 고맙습니다.
    ..
    이나저나 언제쯤 vi 폐인에서 벗어나려는지..
    === 건달의 경지를 꿈꾸며 ===
    === 건달의 경지를 꿈꾸며 ===

    멀뚱이의 아바타

    본문에 오류가

    본문에 오류가 있었습니다
    15. 빈 줄 두 줄을 한 줄로 바꾸기
    :%s/\n\n/\r/g
    15-1. 빈 줄 한 줄을 두 줄로 바꾸기
    :%s/\n/\r\r/g
    ===
    Wikipedian
    WonYong

    익명 사용자의 아바타

    그렇군요. 근데

    그렇군요. 근데 궁금한게 있는데...
    newline charater를 검색할때는 \n로 하면 검색이 되는데
    삽입할때는 \r로 넣어야 하는 이유가 있을까요?

    snowall의 아바타

    이제 겨우 치환과

    이제 겨우 치환과 편집기능을 사용하는 제게는 너무 좋은 자료군요. 어디 적어놔야겠네요.^^
    --------------------------
    snowall의 블로그입니다.
    http://snowall.tistory.com
    피할 수 있을때 즐겨라! http://snowall.tistory.com

    secretfrominternet의 아바타

    수정하면 좋을법한 내용

    # g는 모든 라인에 적용한다라는 의미이고,
    # d는 delete를 의미합니다.
    에서
    g는 모든 라인에 적용한다라는 의미이고 ==> g == grep, 즉 해당 문구가 들어간 라인만 grep 해서..
    정도로 이야기를 해 주는것이 올바른 것이 아닐까 싶습니다.
    사실 모든 라인에 적용한다 라는 의미라면 % 에 대해서 언급하면서 이야기하는게 맞지 않을까 싶습니다. 딴지를 걸려고 한 것은 아니고 이 쓰레드를 보다가 혼동을 일으키실 초보분들이 계실까봐 미리 말씀드립니다.

    ====================어흥====================
    짖지마시고 말씀을 하세요.
    ..

    멀뚱이의 아바타

    일련번호 전부 바꾸기

    제가 쓴 본문 중에서,
    7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.
    :%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g
    이것을 응용하면, 일련번호를 모두 바꿀 수 있습니다.
    질문.
    '2008년 3월 1일' -> '2008-3-1'
    '1999년 2월 5일' -> '1999-2-5'
    이런식으로, 날짜들을 모두 일괄적으로 바꾸려면?
    답변.
    :%s/\(\d\)\(\d\)\(\d\)\(\d\)년 \(\d\)월 \(\d\)일/\1\2\3\4-\5-\6/g
    질문.
    '2008년 3월 1일' -> '2008-03-01'
    '1999년 2월 5일' -> '1999-02-05'
    '1949년 12월 25일' -> '1949-12-25'
    '1999년 2월 11일' -> '1999-02-11'
    '2011년 12월 3일' -> '2011-12-03'
    이런식으로, 날짜들을 모두 일괄적으로 바꾸려면?
    답변.
    일단, 포맷을 통일시켜줍니다.
    즉, 0000년 00월 00일 식으로 포맷을 통일시킵니다.
    :%s/년 \(\d\)월/년 0\1월/g
    :%s/월 \(\d\)일/월 0\1일/g
    그러면 아래와 같이 됩니다.
    '2008년 3월 1일' -> '2008년 03월 01일'
    '1999년 2월 5일' -> '1999년 02월 05일'
    '1949년 12월 25일' -> 동일
    '1999년 2월 11일' -> '1999년 02월 11일'
    '2011년 12월 3일' -> '2011년 12월 03일'
    그런 다음에, 하나의 명령어로 전부 바꿉니다.
    :%s/\(\d\)\(\d\)\(\d\)\(\d\)년 \(\d\)\(\d\)월 \(\d\)\(\d\)일/\1\2\3\4-\5\6-\7\8/g

    planetarium의 아바타

    \(\d\)\(\d\)\(\d\)\(\d\)

    \(\d\)\(\d\)\(\d\)\(\d\) 대신
    \(\d\d\d\d\) 로 하나의 그룹으로 묶는게 나을 것 같습니다.
    또한
    \d\{1,2\} 와 같이 쓰면 숫자가 1~2개인 경우를 검색하기 때문에
    포맷을 통일시키는 일이 필수는 아닙니다.
    물론 0000-00-00 꼴에서는 두자리로 표현하는게 더 보기 이쁘긴 하지만...

    esrevinu의 아바타

    두번째 질문을 한

    두번째 질문을 한 번에...
    :%s/\(\d\{4\}\)\s*년\s*\(\d\{1,2\}\)\s*월\s*\(\d\{1,2\}\)\s*일/\=printf("%4d-%02
    d-%02d",submatch(1),submatch(2), submatch(3))/g

    paeksj98의 아바타

    이런 다양한 방법들이 있다니...

    이번에 좀 숙지좀 해야 겠네요.

    익명 사용자의 아바타

    이거.....

    개발한 개발자는 저 많은 기능 다 기억할까???ㅋ

    wk2006의 아바타

    좋은 정보 감사합니다.

    좋은 정보 감사합니다.

    wind0204의 아바타

    좋은 팁 감사합니다. 맨뒤의 g나 i같은것 외에도

    좋은 팁 감사합니다.
    맨뒤의 g나 i같은것 외에도 다양한 옵션이 있습니다. ( :help s_flags <- p="">

    akayong의 아바타

    저는...

    :$, s/char/_char_/gc
    를 자주 사용합니당. 그러면 각 "char"에 매칭 되는 단어에서 바꿀지 말지 를 물어보는데
    일괄적으로 하는거 보단, 필요한 경우 또는 char 가 다른 단어에 포함되는 단어인 경우 등등
    요긴하게 쓰이더라구요

    eun1505의 아바타

    유용한 청보 감사해요

    음..;;; 까먹지 않기 위해.. ㅡㅡ;;; 블로그에 주욱 드래그해서 긁어가요~
    완전 반할뻔... ㅡㅡ;;;;
    (방금 근 한시간 넘게... ;; 노가다한 1인... ㄷㄷ;;)ㅎㅎ

    2015년 6월 2일 화요일

    [스크랩] Vim의 창(Window) 제어

    Vim의 창(Window) 제어

    창 나누기

    • :split 혹은 Ctrl-Ws : 창을 가로로 나눈다. 인자를 지정하지 않으면 현재 보고있는 파일을 그대로 새창에 보여준다.
    • :vsplit 혹은 Ctrl-Wv : 창을 세로로 나눈다.
    • :split file 은 새창에서 파일을 연다.
    • :숫자split : 창의 크기를 숫자 줄만큼으로 지정하여 연다.
    • :new : 새 배퍼를 생성하면서 창을 연다.

    창이 나뉜 상태에서

    창간 이동

    • Ctrl-Ww : 창들간을 순차적으로 이동한다.
    • Ctrl-Wj : 아래 창으로 간다
    • Ctrl-Wk : 위 창으로 간다
    • Ctrl-Wh : 왼쪽 창으로 간다.
    • Ctrl-Wl : 오른쪽 창으로 간다. (소문자 L)
    • Ctrl-Wo : 현재 창을 제외한 모든 창 닫기
    • ZZ 혹은 :q 혹은 Ctrl-Wc 혹은 Ctrl-Wq : 창 닫기, 미묘한 차이가 있다.

    창 높이 조정

    • Ctrl-W= : 모든 창의 높이와 너비를 동일하게 한다.
    • 숫자Ctrl-W+ : 창 높이를 숫자 칸수만큼 증가시킨다. 숫자 제외시 1로 간주
    • 숫자Ctrl-W- : 창 높이를 숫자 칸수만큼 감소시킨다. 숫자 제외시 1로 간주
    • 숫자Ctrl-W_ : 현재 창의 높이를 숫자칸수로 만든다. 숫자 제외시 최대 크기

    창 너비 조정

    • 숫자Ctrl-W< : 창 너비를 숫자 칸수만큼 감소시킨다. 숫자 제외시 1로 간주
    • 숫자Ctrl-W> : 창 너비를 숫자 칸수만큼 증가시킨다. 숫자 제외시 1로 간주
    • 숫자Ctrl-W| : 창 너비를 숫자 칸수로 만든다. 숫자 제외시 최대 크기

    크롬 에서 번역 옵션 뜨는 거 막는 방법

    버그 같은게 아니고 저 옵션의 기본 값이 제공으로 바뀐듯... 번역 옵션 제공을 비활성화하면 안 뜸. Chrome에서 웹페이지 번역 모르는 언어로 작성된 페이지를 방문할 때 다음 단계에 따라 Chrome이 페이지를 번역하도록 할 수 있습...