====== Vim Text Object ====== * [[http://blog.carbonfive.com/2011/10/17/vim-text-objects-the-definitive-guide/|Vim Text Objects: The Definitive Guide | The Carbon Emitter]] 에 대한 정리이다. 자세한 설명은 해당 문서를 읽는다. 이 위키 페이지는 **텍스트 오브젝트의 레퍼런스**이다. * 편집 명령의 구조 <숫자><명령><텍스트 오브젝트 혹은 이동키> * 숫자 : 숫자로 텍스트 오브젝트나 이동키를 이 숫자 만큼 반복하여 명령을 적용한다. * 명령 : d(삭제), y(복사), c(덮어쓰기) 같은 명령 * 텍스트 오브젝트와 이동키 : 텍스트 오브젝트는 텍스트의 한 단위로 단어, 문장, 문단 등을 나타내고 이동키는 h,j,k,l,f,t,% 같은 키를 나타낸다. * 텍스트 오브젝트는 두 가지로 분류된다. * 기본 : **a**로 시작. 텍스트 오브젝트를 감싸는 부분을 포함한다. 예를들면, 단어의 경우 단어를 감싸는 공백 포함. * 내부(inner) : **i**로 시작. 감싸는 부분을 제외하고 적용된다. 예를들면 단어의 경우 공백을 제외한 단어 글자만. ===== 텍스트 오브젝트 레퍼런스 ===== * 단어 * aw : 감싸는 공백을 포함한 단어 * iw : 공백을 포함하지 않는 단어 * 문장 * as : 문장 끝의 공백 포함. * is : 문장 끝의 공백 제외 * 문단 * ap * ip * 문자열 * a" : 쌍따옴표로 감싼 문자열 * i" : 쌍따옴표를 제외한 쌍따옴표 안의 문자열 * a' : 홑따옴표로 감싼 문자열 * i' * a` : back quote로 감싼 문자열 * i` * 괄호 () * a) * i) : 괄호 자체는 제외 * 대괄호 [] * a] * i] * 중괄호 * a} * i} * 마크업 언어 태그 * at : 태그 블록 전체 * it : 태그 블록의 내부 텍스트만 * a> : 태그 * i> : 태그의 <> 안에 내용만 ===== Vim Script로 추가하는 텍스트 오브젝트 ===== * [[https://github.com/bkad/CamelCaseMotion|CamelCaseMotion]] * i,w * [[https://github.com/vim-scripts/argtextobj.vim|ArgTextObject]] : 함수의 인자 텍스트 오브젝트 * aa * ia * [[https://github.com/michaeljsmith/vim-indent-object|Vim Indet Object]] : 파이썬이나 커피스크립트 같은 인덴트 기반 언어용 인덴트 텍스트 오브젝트 * ai * ii * [[https://github.com/nelstrom/vim-textobj-rubyblock|Ruby Block]] : 루비의 블록(end로 끝남)을 텍스트 오브젝트로 * ar * ir