프로그램 사용/vi2010. 1. 29. 11:02
vi가 아쉬운 점은, 현재 편집중인 파일의 이름을 알수 없다는 점이다. (기본값으로)
아무튼 검색을 해보니 일시적으로 확인하려면
Ctrl-g나 :f로 하면 되지만 커서를 움직이면 사라진다.

이를 고정적으로 출력하기 위해서는 laststaus=2로 설정하면 된다.
다중창으로 편집중에는 출력되지만, 단일 창에서는 출력되지 않는다.

참고로 몇행:몇열 전체 % 라고 나오는 건 ruler 이다.
:set ruler
:set noruler로 토글가능하다.

Ctrl - G
:f
로 현재 편집중인 파일을 출력함

[링크 : http://kldp.org/node/92434]

:set laststatus=2

[링크 : http://vim.wikia.com/wiki/Displaying_status_line_always]

'laststatus' 'ls'    number    (default 1)
            global
            {not in Vi}
    The value of this option influences when the last window will have a
    status line:
        0: never
        1: only if there are at least two windows
        2: always
    The screen looks nicer with a status line if you have several
    windows, but it takes another screen line. |status-line|

[링크 : http://vimdoc.sourceforge.net/htmldoc/options.html#%27laststatus%27]

Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2010. 1. 28. 17:27
여러개의 환경설정 파일이 존재 하지만,
가장 편하게 많은 사용자에게 적용하려면, 전역 환경변수를 수정하면된다.

/usr/share/vim/vimrc
    System wide Vim initializations.
~/.vimrc
    Your personal Vim initializations.

/usr/share/vim/gvimrc
    System wide gvim initializations.
~/.gvimrc
    Your personal gvim initializations.

[링크 : http://linux.die.net/man/1/vi]

Ubuntu 9.10에서는
set hlsearch
set nu
를 추가해주면 개발자가 편하게 사용할수있다.
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2010. 1. 28. 16:43
음.. 말이 애매한데,
Fedora에서는 vi에서 /검색어 로 검색을 하면, 화면상에 모든 검색어들이
하이라이트 처리되었다. 검색어가 블럭으로 선택되어 다르게 표시되어 눈에 띄었는데 우분투는 되지 않았다.

아무튼 페도라와 우분투의 설정을 비교해보니, hlsearch 라는 넘이 있는데
기본값은 off 라고 되어있다. 아마 페도라가 개발자가 많이 쓰다 보니 기본값을 on으로 했나보다.

'hlsearch'      off        no highlighting of search matches

[링크 : http://vimdoc.sourceforge.net/htmldoc/options.html]


:set hlsearch

:set nohlsearch
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2010. 1. 28. 14:57
멀티윈도우 라고도 표기하는 녀석으로
텍스트에서 여러개 창으로 분할해서 사용하는 기능이다.

창 닫기
:q
ctrl - w, c(close)

새로운 창 열기 (가로 분할)
:new
ctrl - w, n

새로운 창 열기 (세로 분할)
ctrl - w, v(vertical)

새로운 창 열기 (파일명) - include 의 파일들을 따라간다.
ctrl - w, f(file)

새로운 창 열기 (ctags)
ctrl - w, ] (창을 열고 창에서 이동)
ctrl - ] (전체화면으로 이동)

창간 이동
ctrl - w, hjkl(좌/위/아래/우)
ctrl - w, tb(최상단=top / 최하단=bottom)
ctrl - w, w(순서대로 이동)

창을 전체 화면으로
:only

[링크 : http://pitfall.egloos.com/1310038]

2010.03.09 추가
수평창 크기 변경
ctrl - w, +/- (키패드는 안되는 듯?)
ctrl - w, n, +/- (숫자 입력후 +/-)

[링크 : http://www.ilug.or.kr/?mid=lec_tip&page=3&document_srl=42573]

2011.11.20 추가
수직창 크기 변경
ctrl - w, </>
[링크 : http://stackoverflow.com/.../with-vim-how-would-one-increase-the-vertical-split-window-size ]

2014.09.04 추가
새로운 창 열기 (가로 분할)
:split

새로운 창 열기 (세로 분할)
:vsplit

[링크 : http://nan1004au.tistory.com/41]
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2010. 1. 28. 12:07
vi 내부에서 외부 프로그램을 실행하는 방법으로
:! 명령어
를 입력하는 방법이 있다.

[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Vim/Documents/Tip/ExternalCommand]


$ vi ./src/modules/modules.c

ABOUT-NLS  INSTALL.win32  NEWS        bootstrap    config.status   doc       m4          rvlc      test              vlc.compile.log
AUTHORS    INSTALL.wince  README      compat       configure       extras    make-alias  share     toolbox
COPYING    MAINTAINERS    THANKS      compile      configure.ac    http.pre  modules     src       vlc
ChangeLog  Makefile       aclocal.m4  config.h     configure.help  include   po          stamp-h1  vlc-config
HACKING    Makefile.am    autotools   config.h.in  configure.log   libs      projects    svlc      vlc-config.in
INSTALL    Makefile.in    bin         config.log   cvlc            libtool   qvlc        tags      vlc-config.in.in

Press ENTER or type command to continue

VI 에서 편집중에
:! ls
를 실행한 결과
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2010. 1. 27. 15:42
set 명령어 모음을 보려면(설정된 값들)

:set all 하면 나온다.
우르르르 나오긴 하는데 음.. 머가 먼지는 ㄱ-

:set all
--- 옵션 ---
  aleph=224           foldclose=          mousemodel=extend   swapfile
noarabic              foldcolumn=0        mousetime=500       swapsync=fsync
  arabicshape         foldenable        nonumber              switchbuf=
noallowrevins         foldexpr=0          numberwidth=4       synmaxcol=3000
noaltkeymap           foldignore=#        omnifunc=           syntax=cpp
  ambiwidth=single    foldlevel=0         operatorfunc=       tabline=
noautochdir           foldlevelstart=-1 nopaste               tabpagemax=10
noautoindent          foldmethod=manual   pastetoggle=        tabstop=8
noautoread            foldminlines=1      patchexpr=          tagbsearch
noautowrite           foldnestmax=20      patchmode=          taglength=0
noautowriteall        formatexpr=       nopreserveindent      tagrelative
  background=light    formatoptions=tcq   previewheight=12    tagstack
nobackup              formatprg=        nopreviewwindow       term=xterm
  backupcopy=auto     fsync               printdevice=      notermbidi
  backupext=~       nogdefault            printencoding=      termencoding=
  backupskip=/tmp/*   helpheight=20       printfont=courier noterse
nobinary              helplang=ko         printmbcharset=     textauto
nobomb              nohidden              printmbfont=      notextmode
  bufhidden=          history=50          prompt              textwidth=0
  buflisted         nohkmap               pumheight=0         thesaurus=
  buftype=          nohkmapp              quoteescape=\     notildeop
  cdpath=,,         nohlsearch          noreadonly            timeout
  cedit=^F          noicon                redrawtime=2000     timeoutlen=1000
  charconvert=        iconstring=         remap             notitle
nocindent           noignorecase          report=2            titlelen=85
  cinoptions=         iminsert=0        norevins              titlestring=
  cmdheight=1         imsearch=0        norightleft         nottimeout
  cmdwinheight=7      includeexpr=        ruler               ttimeoutlen=-1
  columns=87        noincsearch           rulerformat=        ttybuiltin
nocompatible          indentexpr=         scroll=28           ttyfast
  completefunc=     noinfercase         noscrollbind          ttymouse=xterm2
noconfirm           noinsertmode          scrolljump=1        ttyscroll=999
nocopyindent          isprint=@,161-255   scrolloff=0         ttytype=xterm
  cpoptions=aABceFs   joinspaces        nosecure              undolevels=1000
  cscopepathcomp=0    key=                selectmode=         updatecount=200
  cscopeprg=cscope    keymap=             shell=/bin/bash     updatetime=4000
  cscopequickfix=     keymodel=           shellcmdflag=-c     verbose=0
nocscopetag           keywordprg=man      shellquote=         verbosefile=
  cscopetagorder=0    langmap=            shelltemp           virtualedit=
nocscopeverbose       langmenu=           shellxquote=      novisualbell
nocursorcolumn        laststatus=1      noshiftround          warn
nocursorline        nolazyredraw          shiftwidth=8      noweirdinvert
  debug=            nolinebreak         noshortname           whichwrap=b,s
nodelcombine          lines=57            showbreak=          wildchar=<Tab>
  dictionary=       nolisp              noshowcmd             wildcharm=0
nodiff              nolist              noshowfulltag         wildignore=
  diffexpr=           listchars=eol:$   noshowmatch         nowildmenu
  diffopt=filler      loadplugins         showmode            wildmode=full
nodigraph             magic               showtabline=1       wildoptions=
  display=            makeef=             sidescroll=0        window=56
  eadirection=both    makeprg=make        sidescrolloff=0     winheight=1
noedcompatible        matchtime=5       nosmartcase         nowinfixheight
  encoding=utf-8      maxcombine=2      nosmartindent       nowinfixwidth
  endofline           maxfuncdepth=100  nosmarttab            winminheight=1
  equalprg=           maxmem=254460     nospell               winwidth=20
noerrorbells          maxmemtot=254460    spellfile=          wrap
  esckeys             menuitems=25        spelllang=en        wrapmargin=0
  eventignore=      nomodeline            spellsuggest=best   wrapscan
noexpandtab           modelines=5       nosplitbelow          write
noexrc                modifiable        nosplitright        nowriteany
  fileformat=unix   nomodified            startofline         writebackup
  filetype=cpp        more                statusline=         writedelay=0
nofkmap               mouse=              suffixesadd=
  backspace=indent,eol,start
  backupdir=.,~/tmp,~/
  breakat= ^I!@*-+;:,./?
  casemap=internal,keepascii
  cinkeys=0{,0},0),:,0#,!^F,o,O,e
  cinwords=if,else,while,do,for,switch
  comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
  commentstring=/*%s*/
  complete=.,w,b,u,t,i
  completeopt=menu,preview
  define=^\s*#\s*define
  directory=.,~/tmp,/var/tmp,/tmp
  errorfile=errors.err
  errorformat=%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-G%f:%l: (Each undeclared identifier
 is reported only once,%-G%f:%l: for each function it appears in.),%f:%l:%c:%m,%f(%l):%
m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%*\d]: Entering directory `%f',%X%*\a[%
*\d]: Leaving directory `%f',%D%*\a: Entering directory `%f',%X%*\a: Leaving directory
`%f',%DMaking %*\a in %f,%f|%l| %m
  fileencoding=utf-8
  fileencodings=ucs-bom,utf-8,default,latin1
  fileformats=unix,dos
  fillchars=vert:|,fold:-
  foldmarker={{{,}}}
  foldopen=block,hor,mark,percent,quickfix,search,tag,undo
  foldtext=foldtext()
  formatlistpat=^\s*\d\+[\]:.)}\t ]\s*
  grepformat=%f:%l:%m,%f:%l%m,%f  %l%m
  grepprg=grep -n $* /dev/null
  guicursor=n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block
  helpfile=/usr/share/vim/vim72/doc/help.txt
  highlight=8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMs
g,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visua
l,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:Di
ffDelete,T:DiffText,>:SignColumn,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu
,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColum
n,.:CursorLine
  include=^\s*#\s*include
  indentkeys=0{,0},:,0#,!^F,o,O,e
  isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=
  isident=@,48-57,_,192-255
  iskeyword=@,48-57,_,192-255
  lispwords=defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,defin
e-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,
deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etype
case,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-p
rog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-fro
m-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,de
fine-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,
store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accesso
rs,with-accessors*,defclass,defmethod,print-unreadable-object
  matchpairs=(:),{:},[:]
  maxmempattern=1000
  mkspellmem=460000,2000,500
  nrformats=octal,hex
  paragraphs=IPLPPPQPP TPHPLIPpLpItpplpipbp
  path=.,/usr/include,,
  printexpr=system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice) . ' ' . v:f
name_in) . delete(v:fname_in) + v:shell_error
  printheader=%<%f%h%m%=페이지 %N
  printoptions=paper:a4
  rightleftcmd=search
  runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/
usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
  scrollopt=ver,jump
  sections=SHNHH HUnhsh
  selection=inclusive
  sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize
  shellpipe=2>&1| tee
  shellredir=>%s 2>&1
  shortmess=filnxtToO
  spellcapcheck=[.?!]\_[\])'"^I ]\+
  suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.
out,.toc
  tags=./tags,./TAGS,tags,TAGS
  titleold=빔을 날게 해 주셔서 고맙습니다
  viewdir=~/.vim/view
  viewoptions=folds,options,cursor
  viminfo='100,<50,s10,h



[링크 : http://www.eng.hawaii.edu/Tutor/vi.html]

'프로그램 사용 > vi' 카테고리의 다른 글

vi 파일 여러개 관리하기  (0) 2010.01.28
vi 에서 명령어 실행하기  (0) 2010.01.28
vi set commands  (0) 2010.01.27
root는 왜 vi에서 컬러로 안나오나요?(how enable syntax high light on root)  (0) 2009.10.29
vimdiff  (0) 2009.10.29
VI 자동 줄 정렬  (0) 2009.10.06
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2009. 10. 29. 15:17
FC6 사용자인데(응?)
root로 들어가서 vi를 하면 아무리 해도 Syntax High light가 작동하지를 않는다.
물론 whereis로 검색을 해봐도 vi는 하나뿐인데 왜그런가 해서 검색을 해봤더니



Ok, I fixed it... all I had to do was to add an alias for vi pointing to /usr/bin/vim in my /root/.bashrc file. Root was using /bin/vi which is the Small version, while other accounts were aliasing vi as vim, which is why it was working... I was also able to get syntax to work as root by using just "vim filename" instead of vi... Silly me... Thanks for pointing me in the right direction Tony! :)

[링크 : http://www.nabble.com/Unable-to-get-syntax-highlighting-to-work-for-root-account-td15767467.html]

$ alias
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

일반 유저에서 alias를 실행해보니, vi가 설정되어 있었다.
그런데 root는 이러한 부분이 없었다.

# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

root는 안전을 위해 rm이나 mv에 -i(interative) 옵션을 기본으로 붙이게 해놨다.

'프로그램 사용 > vi' 카테고리의 다른 글

vi 에서 명령어 실행하기  (0) 2010.01.28
vi set commands  (0) 2010.01.27
root는 왜 vi에서 컬러로 안나오나요?(how enable syntax high light on root)  (0) 2009.10.29
vimdiff  (0) 2009.10.29
VI 자동 줄 정렬  (0) 2009.10.06
vi auto indent  (0) 2009.10.06
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2009. 10. 29. 14:54
vi 스타일의 syntax highlight를 지원하는 diff 프로그램이다.
(말만 거창하지 간단하게 말하면 윈도우용 diff 프로그램처럼 나온다는 의미)



[링크 : http://amjith.blogspot.com/2007/07/visual-diff-tools-in-linux.html]
[링크 : http://linux.die.net/man/1/vimdiff]



1) vim a.c
2) :diffs b.c (:diffsplit b.c 로도 사용할 수 있습니다.)
3) ^wJ

vi에서 diff 모드로 변환하는 방법

$ ll /usr/bin/vi*
-rwxr-xr-x 1 root root 2737228 Sep 29  2006 /usr/bin/vim
lrwxrwxrwx 1 root root       3 Jul 22 01:14 /usr/bin/vimdiff -> vim

vi는 리눅스 프로그램답게(?) 같은 프로그램을 실행명을 바꿈으로
mode를 바꾸어 실행하는 trick을 가지고 있다고 한다.

[링크 : http://kldp.org/node/1155]



'프로그램 사용 > vi' 카테고리의 다른 글

vi set commands  (0) 2010.01.27
root는 왜 vi에서 컬러로 안나오나요?(how enable syntax high light on root)  (0) 2009.10.29
vimdiff  (0) 2009.10.29
VI 자동 줄 정렬  (0) 2009.10.06
vi auto indent  (0) 2009.10.06
busybox 1.14.3 vi editor  (0) 2009.09.16
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2009. 10. 6. 20:31
비쥬얼 스튜디오에서 Alt-f8로 하는 자동 줄 정렬 기능이 VI에도 존재한다.

V를 누른후 Visual mode에서 블럭선택 후 = 를 누른다.

V를 누른후 Visual mode에서 <, >를 누르면 탭 하나씩 옆으로 이동한다.
<는 탭 하나 제거, >는 탭 하나씩 추가



비주얼 블럭(?)으로 잡고 = 을 누르면 알아서 indent 조정해 주고요
< 를 누르면 한탭씩 뒤로 이동합니다 8)

[링크 : http://kldp.org/node/20343]


2010.09.25 추가
[링크 : http://overegoz.tistory.com/644]
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/vi2009. 10. 6. 20:08
자동 들여쓰기 설정
:set ai

자동 들여쓰기 해제
:set noai

[링크 : http://k.daum.net/qna/view.html?qid=2f8A4]
[링크 : http://vim.wikia.com/wiki/How_to_stop_auto_indenting]

'프로그램 사용 > vi' 카테고리의 다른 글

vimdiff  (0) 2009.10.29
VI 자동 줄 정렬  (0) 2009.10.06
vi auto indent  (0) 2009.10.06
busybox 1.14.3 vi editor  (0) 2009.09.16
vi 에서 대소문자 구분 하지 않고 검색하기 + 단어단위 검색  (0) 2009.09.02
VI에 ctags 사용하기  (0) 2009.07.21
Posted by 구차니

댓글을 달아 주세요