vim줄번호방향키

우분투 환경에서,

vi를 이용하여 코드파일을 수정하면

방향키를 누를 때 문자가 입력되거나,

줄번호가 보이지 않아 불편한 경우가 있습니다.

오늘은 vim을 설치하여 위와같은 불편요소를 해결해 보도록 하겠습니다.

 

 

 

 

 

먼저 vim은 vi의 호환 텍스트용 편집기로서,

스크립트를 사용하여 자유롭게 편집환경을 변경할 수 있으며,

문법 강조 기능, 다중 되돌리기, 문법 검사 등을 사용하는 강점이 있습니다.

다양한 설정을 통해 우리의 코딩활동을 조금 더 쾌적하게 바꿔줄 수 있으니,

본문에서 소개해주는 기능 이외에도 다양한 기능을 사용해보면 좋을 것 같습니다.

$ sudo apt-get upgrade
$ sudo apt-get update

먼저 터미널 가상환경을 최신화 시켜줍니다.

$ sudo apt-get install vim

vim 역시 apt-get install 명령어로 설치할 수 있습니다.

vim을 설치하셨다면,

vi 혹은 vim을 실행한 이후,

::set number //줄번호 출력
::set nu //줄번호 출력 해제

명령어를 통해 줄번호를 출력하고 해제할 수 있습니다.

만약, vim을 실행할 때 마다 자동으로 줄번호가 설정되도록 하고 싶으시다면,

초기설정이 필요합니다.

터미널 환경에서 다음의 명령어를 입력해줍니다.

vi ~/.vimrc

다음 라인을 추가해줍니다.

set number

이후 :wq를 입력해 파일을 저장하고 종료합니다.

줄번호 표시 이외에도, vim을 이용하면 방향키를 자동으로 인식할 뿐만 아니라

괄호 언매칭, 문법 검사 등 많은 기능을 추가할 수 있습니다.

사이트를 한 번 확인해보세요.

 

Ubuntu 16.04 LTS : Initial Settings : Vim Settings : Server World

root@dlp:~# " use extended function of vim (no compatible with vi) set nocompatible " specify encoding set encoding=euc-jp " specify file encoding set fileencodings=iso-2022-jp,sjis " specify file formats set fileformats=unix,dos " take backup " if not, sp

www.server-world.info

혹은 아래의 소스코드에서 필요하신 기능을 입력하시면 좋을 것 같습니다.

" COPY THIS FILE AS .vimrc in home folder.
" cp vimrc ~/.vimrc
"
" .vimrc
"
" Smylers's .vimrc
" http://www.stripey.com/vim/
" 
" 2000 Jun  1: for `Vim' 5.6
" 
" This vimrc is divided into these sections:
" 
" * Terminal Settings
" * User Interface
" * Text Formatting -- General
" * Text Formatting -- Specific File Formats
" * Search & Replace
" * Spelling
" * Keystrokes -- Moving Around
" * Keystrokes -- Formatting
" * Keystrokes -- Toggles
" * Keystrokes -- Insert Mode
" * Keystrokes -- For HTML Files
" * `SLRN' Behaviour
" * Functions Referred to Above
" 
" This file contains no control codes and no `top bit set' characters above the
" normal Ascii range, and all lines contain a maximum of 79 characters.  With a
" bit of luck, this should make it resilient to being uploaded, downloaded,
" e-mailed, posted, encoded, decoded, transmitted by morse code, or whatever.


" first clear any existing autocommands:
autocmd!


"---" * Terminal Settings
"---
"---" `XTerm', `RXVT', `Gnome Terminal', and `Konsole' all claim to be "xterm";
"---" `KVT' claims to be "xterm-color":
"---if &term =~ 'xterm'
"---
"---  " `Gnome Terminal' fortunately sets $COLORTERM; it needs <BkSpc> and <Del>
"---  " fixing, and it has a bug which causes spurious "c"s to appear, which can be
"---  " fixed by unsetting t_RV:
"---  if $COLORTERM == 'gnome-terminal'
"---    execute 'set t_kb=' . nr2char(8)
"---    " [Char 8 is <Ctrl>+H.]
"---    fixdel
"---    set t_RV=
"---
"---  " `XTerm', `Konsole', and `KVT' all also need <BkSpc> and <Del> fixing;
"---  " there's no easy way of distinguishing these terminals from other things
"---  " that claim to be "xterm", but `RXVT' sets $COLORTERM to "rxvt" and these
"---  " don't:
"---  elseif $COLORTERM == ''
"---    execute 'set t_kb=' . nr2char(8)
"---    fixdel
"---
"---  " The above won't work if an `XTerm' or `KVT' is started from within a `Gnome
"---  " Terminal' or an `RXVT': the $COLORTERM setting will propagate; it's always
"---  " OK with `Konsole' which explicitly sets $COLORTERM to "".
"---
"---  endif
"---endif


" * User Interface

" have syntax highlighting in terminals which can display colours:
"if has('syntax') && (&t_Co > 2)
"  syntax on
"endif

" have fifty lines of command-line (etc) history:
set history=50
" remember all of these between sessions, but only 10 search terms; also
" remember info for 10 files, but never any on removable disks, don't remember
" marks in files, don't rehighlight old search patterns, and only save up to
" 100 lines of registers; including @10 in there should restrict input buffer
" but it causes an error for me:
set viminfo=/10,'10,r/mnt/zip,r/mnt/floppy,f0,h,\"100

" have command-line completion <Tab> (for filenames, help topics, option names)
" first list the available options and complete the longest common part, then
" have further <Tab>s cycle through the possibilities:
set wildmode=list:longest,full

" use "[RO]" for "[readonly]" to save space in the message line:
set shortmess+=r

" display the current mode and partially-typed commands in the status line:
set showmode
set showcmd

" when using list, keep tabs at their full width and display `arrows':
execute 'set listchars+=tab:' . nr2char(187) . nr2char(183)
" (Character 187 is a right double-chevron, and 183 a mid-dot.)

" have the mouse enabled all the time:
" set mouse=a

" don't have files trying to override this .vimrc:
set nomodeline


" * Text Formatting -- General

" don't make it look like there are line breaks where there aren't:
set nowrap

" use indents of 2 spaces, and have them copied down lines:
set shiftwidth=2
set shiftround
set expandtab
set autoindent

" normally don't automatically format `text' as it is typed, IE only do this
" with comments, at 79 characters:
set formatoptions-=t
set textwidth=79

" get rid of the default style of C comments, and define a style with two stars
" at the start of `middle' rows which (looks nicer and) avoids asterisks used
" for bullet lists being treated like C comments; then define a bullet list
" style for single stars (like already is for hyphens):
set comments-=s1:/*,mb:*,ex:*/
set comments+=s:/*,mb:**,ex:*/
set comments+=fb:*

" treat lines starting with a quote mark as comments (for `Vim' files, such as
" this very one!), and colons as well so that reformatting usenet messages from
" `Tin' users works OK:
set comments+=b:\"
set comments+=n::


" * Text Formatting -- Specific File Formats

" enable filetype detection:
filetype on

" recognize anything in my .Postponed directory as a news article, and anything
" at all with a .txt extension as being human-language text [this clobbers the
" `help' filetype, but that doesn't seem to prevent help from working
" properly]:
augroup filetype
  autocmd BufNewFile,BufRead */.Postponed/* set filetype=mail
  autocmd BufNewFile,BufRead *.txt set filetype=human
augroup END

" in human-language files, automatically format everything at 72 chars:
autocmd FileType mail,human set formatoptions+=t textwidth=72

" for C-like programming, have automatic indentation:
autocmd FileType c,cpp,slang set cindent

" for actual C (not C++) programming where comments have explicit end
" characters, if starting a new line in the middle of a comment automatically
" insert the comment leader characters:
autocmd FileType c set formatoptions+=ro

" for Perl programming, have things in braces indenting themselves:
autocmd FileType perl set smartindent

" for CSS, also have things in braces indented:
autocmd FileType css set smartindent

" for HTML, generally format text, but if a long line has been created leave it
" alone when editing:
autocmd FileType html set formatoptions+=tl

" for both CSS and HTML, use genuine tab characters for indentation, to make
" files a few bytes smaller:
autocmd FileType html,css set noexpandtab tabstop=2

" in makefiles, don't expand tabs to spaces, since actual tab characters are
" needed, and have indentation at 8 chars to be sure that all indents are tabs
" (despite the mappings later):
autocmd FileType make set noexpandtab shiftwidth=8


" * Search & Replace

" make searches case-insensitive, unless they contain upper-case letters:
set ignorecase
set smartcase

" show the `best match so far' as search strings are typed:
set incsearch

" assume the /g flag on :s substitutions to replace all matches in a line:
set gdefault


" * Keystrokes -- Moving Around

" have the h and l cursor keys wrap between lines (like <Space> and <BkSpc> do
" by default), and ~ covert case over line breaks; also have the cursor keys
" wrap in insert mode:
set whichwrap=h,l,~,[,]

" page down with <Space> (like in `Lynx', `Mutt', `Pine', `Netscape Navigator',
" `SLRN', `Less', and `More'); page up with - (like in `Lynx', `Mutt', `Pine'),
" or <BkSpc> (like in `Netscape Navigator'):
noremap <Space> <PageDown>
noremap <BS> <PageUp>
noremap - <PageUp>
" [<Space> by default is like l, <BkSpc> like h, and - like k.]

" scroll the window (but leaving the cursor in the same place) by a couple of
" lines up/down with <Ins>/<Del> (like in `Lynx'):
noremap <Ins> 2<C-Y>
noremap <Del> 2<C-E>
" [<Ins> by default is like i, and <Del> like x.]

" use <F6> to cycle through split windows (and <Shift>+<F6> to cycle backwards,
" where possible):
nnoremap <F6> <C-W>w
nnoremap <S-F6> <C-W>W

" use <Ctrl>+N/<Ctrl>+P to cycle through files:
nnoremap <C-N> :next<CR>
nnoremap <C-P> :prev<CR>
" [<Ctrl>+N by default is like j, and <Ctrl>+P like k.]

" have % bounce between angled brackets, as well as t'other kinds:
set matchpairs+=<:>

" have <F1> prompt for a help topic, rather than displaying the introduction
" page, and have it do this from any mode:
nnoremap <F1> :help<Space>
vmap <F1> <C-C><F1>
omap <F1> <C-C><F1>
map! <F1> <C-C><F1>


" * Keystrokes -- Formatting

" have Q reformat the current paragraph (or selected text if there is any):
nnoremap Q gqap
vnoremap Q gq

" have the usual indentation keystrokes still work in visual mode:
vnoremap <C-T> >
vnoremap <C-D> <LT>
vmap <Tab> <C-T>
vmap <S-Tab> <C-D>

" have Y behave analogously to D and C rather than to dd and cc (which is
" already done by yy):
noremap Y y$


" * Keystrokes -- Toggles

" Keystrokes to toggle options are defined here.  They are all set to normal
" mode keystrokes beginning \t but some function keys (which won't work in all
" terminals) are also mapped.

" have \tp ("toggle paste") toggle paste on/off and report the change, and
" where possible also have <F4> do this both in normal and insert mode:
nnoremap \tp :set invpaste paste?<CR>
nmap <F4> \tp
imap <F4> <C-O>\tp
set pastetoggle=<F4>

"" have \tf ("toggle format") toggle the automatic insertion of line breaks
"" during typing and report the change:
"nnoremap \tf :if &fo =~ 't' <Bar> set fo-=t <Bar> else <Bar> set fo+=t <Bar>
"  \ endif <Bar> set fo?<CR>
"nmap <F3> \tf
"imap <F3> <C-O>\tf
"
" have \tl ("toggle list") toggle list on/off and report the change:
nnoremap \tl :set invlist list?<CR>
nmap <F2> \tl

" have \th ("toggle highlight") toggle highlighting of search matches, and
" report the change:
nnoremap \th :set invhls hls?<CR>


" * Keystrokes -- Insert Mode

" allow <BkSpc> to delete line breaks, beyond the start of the current
" insertion, and over indentations:
set backspace=eol,start,indent

" have <Tab> (and <Shift>+<Tab> where it works) change the level of
" indentation:
inoremap <Tab> <C-T>
inoremap <S-Tab> <C-D>
" [<Ctrl>+V <Tab> still inserts an actual tab character.]

syntax on

출처

 

Changing Vim editor settings?

How do I change default settings of Vim editor such as setting auto indent, setting Tab space to 4 and changing text colors? Also how to set vim as the default code editor?

askubuntu.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기