Update runtime files

This commit is contained in:
Bram Moolenaar 2019-06-10 22:47:40 +02:00
parent 4c063a0dab
commit 12ee7ff00b
13 changed files with 1372 additions and 224 deletions

View File

@ -45,37 +45,37 @@ LangString str_type_full ${LANG_SIMPCHINESE} \
LangString str_section_old_ver ${LANG_SIMPCHINESE} \
"卸载旧版本"
LangString str_desc_old_ver ${LANG_SIMPCHINESE} \
"卸载系统上旧版本的 Vim。"
"卸载系统上已存在的 Vim 版本"
LangString str_section_exe ${LANG_SIMPCHINESE} \
"安装 Vim 图形界面"
LangString str_desc_exe ${LANG_SIMPCHINESE} \
"安装 Vim 图形界面及脚本。此为必选安装。"
"安装 Vim 图形界面及运行时文件。此项为必选。"
LangString str_section_console ${LANG_SIMPCHINESE} \
"安装 Vim 命令行程序"
"安装 Vim 控制台版本"
LangString str_desc_console ${LANG_SIMPCHINESE} \
"安装 Vim 命令行程序 (vim.exe)。该程序在命令行窗口中运行。"
"安装 Vim 的控制台版本vim.exe。"
LangString str_section_batch ${LANG_SIMPCHINESE} \
"安装批处理文件"
LangString str_desc_batch ${LANG_SIMPCHINESE} \
"为 Vim 的各种变体创建批处理程序,以便在命令行下运行 Vim。"
"为 Vim 的各种变体创建批处理文件,以便在命令行下运行 Vim。"
LangString str_group_icons ${LANG_SIMPCHINESE} \
"创建 Vim 图标"
"创建图标"
LangString str_desc_icons ${LANG_SIMPCHINESE} \
"为 Vim 创建若干图标,以方便使用 Vim。"
LangString str_section_desktop ${LANG_SIMPCHINESE} \
"在桌面上"
"桌面图标"
LangString str_desc_desktop ${LANG_SIMPCHINESE} \
"在桌面上为 Vim 创建若干图标,以方便启动 Vim。"
"创建 Vim 的桌面快捷方式图标。"
LangString str_section_start_menu ${LANG_SIMPCHINESE} \
"在启动菜单的程序菜单下"
"「开始」菜单程序组"
LangString str_desc_start_menu ${LANG_SIMPCHINESE} \
"在启动菜单的程序菜单下添加 Vim 组。适用于 Windows 95 及以上版本。"
"在开始菜单中添加 Vim 程序组(适用于 Windows 95 及以上版本)"
#LangString str_section_quick_launch ${LANG_SIMPCHINESE} \
# "在快速启动启动栏中"
@ -83,9 +83,9 @@ LangString str_desc_start_menu ${LANG_SIMPCHINESE} \
# "在快速启动栏中添加 Vim 图标。"
LangString str_section_edit_with ${LANG_SIMPCHINESE} \
"安装快捷菜单"
"添加到快捷菜单"
LangString str_desc_edit_with ${LANG_SIMPCHINESE} \
"将 Vim 添加到“打开方式”快捷菜单中。"
"将“用 Vim 编辑”添加到快捷菜单中。"
#LangString str_section_edit_with32 ${LANG_SIMPCHINESE} \
# "32 位版本"
@ -98,10 +98,10 @@ LangString str_desc_edit_with ${LANG_SIMPCHINESE} \
# "将 Vim 添加到 64 位程序的“打开方式”快捷菜单中。"
LangString str_section_vim_rc ${LANG_SIMPCHINESE} \
"创建缺省配置文件"
"创建默认配置文件"
LangString str_desc_vim_rc ${LANG_SIMPCHINESE} \
"在安装目录下生成缺省的 Vim 配置文件(_vimrc)。\
如果该文件已经存在,则略过此项。"
"在安装目录下生成默认的 Vim 配置文件(_vimrc)。\
如果该文件已经存在,则跳过该项。"
LangString str_group_plugin ${LANG_SIMPCHINESE} \
"创建插件目录"
@ -121,9 +121,9 @@ LangString str_desc_plugin_vim ${LANG_SIMPCHINESE} \
该目录下的扩展插件。"
LangString str_section_vis_vim ${LANG_SIMPCHINESE} \
"安装 VisVim 插件"
"VisVim 插件"
LangString str_desc_vis_vim ${LANG_SIMPCHINESE} \
"安装用于微软 Microsoft Visual Studio 进行集成的 VisVim 插件。"
"安装与 Visual Studio 集成的 VisVim 插件。"
LangString str_section_nls ${LANG_SIMPCHINESE} \
"安装多语言支持"
@ -153,12 +153,12 @@ LangString str_desc_rm_plugin_home ${LANG_SIMPCHINESE} \
LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \
"公共插件目录"
LangString str_desc_rm_plugin_vim ${LANG_SIMPCHINESE} \
"Remove the plugin directories from Vim install directory."
"从 Vim 安装目录下移除插件目录。"
LangString str_unsection_rootdir ${LANG_SIMPCHINESE} \
"Remove the Vim root directory"
"移除 Vim 主目录"
LangString str_desc_rm_rootdir ${LANG_SIMPCHINESE} \
"Remove the Vim root directory. It contains your Vim configuration files!"
"移除 Vim 的主目录,该目录包含您的配置文件!"
##############################################################################
@ -225,13 +225,13 @@ LangString str_msg_rm_exe_fail ${LANG_SIMPCHINESE} \
# 该目录下仍有其他文件。"
LangString str_msg_uninstalling ${LANG_SIMPCHINESE} \
"Uninstalling the old version..."
"正在卸载旧版本..."
LangString str_msg_registering ${LANG_SIMPCHINESE} \
"Registering..."
"正在注册..."
LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
"Unregistering..."
"正在取消注册..."
##############################################################################
@ -239,12 +239,12 @@ LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
##############################################################################
LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \
"Choose _vimrc settings"
"设置 _vimrc"
LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \
"Choose the settings for enhancement, keyboard and mouse."
"选择键盘、鼠标和增强选项。"
LangString str_msg_compat_title ${LANG_SIMPCHINESE} \
" Vi / Vim behavior "
"Vi / Vim 行为"
LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \
"&Compatibility and enhancements"
LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \
@ -257,7 +257,7 @@ LangString str_msg_compat_all ${LANG_SIMPCHINESE} \
"Vim with all enhancements (load vimrc_example.vim) (Default)"
LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \
" Mappings "
"键盘映射"
LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \
"&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \
@ -266,7 +266,7 @@ LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \
"Remap a few keys"
LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \
" Mouse "
"鼠标"
LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \
"&Behavior of right and left buttons"
LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.1. Last change: 2019 Jun 02
*editing.txt* For Vim version 8.1. Last change: 2019 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -593,7 +593,7 @@ You can use the argument list with the following commands, and with the
expression functions |argc()| and |argv()|. These all work on the argument
list of the current window.
*:ar* *:arg* *:args*
*:ar* *:arg* *:args*
:ar[gs] Print the argument list, with the current file in
square brackets.

View File

@ -8868,7 +8868,7 @@ sound_playevent({name} [, {callback}])
finished. The first argument is the sound ID, the second
argument is the status:
0 sound was played to the end
1 sound was interruped
1 sound was interrupted
2 error occured after sound started
Example: >
func Callback(id, status)
@ -8878,7 +8878,7 @@ sound_playevent({name} [, {callback}])
< Returns the sound ID, which can be passed to `sound_stop()`.
Returns zero if the sound could not be played.
{only available when compiled with the +sound feature}
{only available when compiled with the |+sound| feature}
*sound_playfile()*
sound_playfile({path} [, {callback}])
@ -8886,13 +8886,13 @@ sound_playfile({path} [, {callback}])
must be a full path. On Ubuntu you may find files to play
with this command: >
:!find /usr/share/sounds -type f | grep -v index.theme
< {only available when compiled with the +sound feature}
< {only available when compiled with the |+sound| feature}
sound_stop({id}) *sound_stop()*
Stop playing sound {id}. {id} must be previously returned by
`sound_playevent()` or `sound_playfile()`.
{only available when compiled with the +sound feature}
{only available when compiled with the |+sound| feature}
*soundfold()*
soundfold({word})

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.1. Last change: 2019 May 25
*index.txt* For Vim version 8.1. Last change: 2019 Jun 09
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1484,7 +1484,6 @@ tag command action ~
|:perldo| :perld[o] execute Perl command for each line
|:pop| :po[p] jump to older entry in tag stack
|:popup| :popu[p] popup a menu by name
|:popupclear| :popupc[lear] remove all popup windows
|:ppop| :pp[op] ":pop" in preview window
|:preserve| :pre[serve] write all text to swap file
|:previous| :prev[ious] go to previous file in argument list

View File

@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.1. Last change: 2019 Jun 09
*popup.txt* For Vim version 8.1. Last change: 2019 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -6,7 +6,7 @@
Displaying text in floating window. *popup* *popup-window*
THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE
THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE
1. Introduction |popup-intro|
2. Functions |popup-functions|
@ -76,31 +76,21 @@ else. E.g. if you use `popup_atcursor()` the popup normally shows just above
the current cursor position, but if the cursor is close to the top of the Vim
window it will be placed below the cursor position.
When the screen scrolls up for output of an Ex command, popups move too, so
that they will not cover the output.
TODO:
Scrolling: When the screen scrolls up for output of an Ex command, what
happens with popups?
1. Stay where they are. Problem: listed text may go behind and can't be read.
2. Scroll with the page. What if they get updated? Either postpone, or take
the scroll offset into account.
Probably 2. is the best choice.
IMPLEMENTATION:
- buffers remain after popup was deleted.
- do not redraw whole window when popup was changed, mark affected lines for
redraw.
- buffers remain after a popup was deleted.
- Why does 'nrformats' leak from the popup window buffer???
- Add 'balloonpopup': instead of showing text, let the callback open a balloon
and return the window ID. The popup will then be closed when the mouse
moves, except when it moves inside the popup.
- Add 'balloonpopup': instead of showing text, let the callback open a popup
window and return the window ID. The popup will then be closed when the
mouse moves, except when it moves inside the popup.
- For the "moved" property also include mouse movement?
- Make redrawing more efficient and avoid flicker:
- put popup menu also put in popup_mask?
- Use changes in popup_mask to decide what windows and range of lines to
redraw?
- Disable commands, feedkeys(), CTRL-W, etc. in a popup window.
Use NOT_IN_POPUP_WINDOW for more commands.
- Invoke filter with character before mapping?
@ -114,7 +104,7 @@ IMPLEMENTATION:
==============================================================================
2. Functions *popup-functions*
THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE
THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE
[functions to be moved to eval.txt later, keep overview of functions here]
@ -164,7 +154,7 @@ popup_create({text}, {options}) *popup_create()*
popup_dialog({text}, {options}) *popup_dialog()*
{not implemented yet}
{not implemented yet}
Just like |popup_create()| but with these default options: >
call popup_create({text}, {
\ 'pos': 'center',
@ -176,7 +166,7 @@ popup_dialog({text}, {options}) *popup_dialog()*
popup_filter_menu({id}, {key}) *popup_filter_menu()*
{not implemented yet}
{not implemented yet}
Filter that can be used for a popup. It handles the cursor
keys to move the selected index in the popup. Space and Enter
can be used to select an item. Invokes the "callback" of the
@ -185,7 +175,7 @@ popup_filter_menu({id}, {key}) *popup_filter_menu()*
popup_filter_yesno({id}, {key}) *popup_filter_yesno()*
{not implemented yet}
{not implemented yet}
Filter that can be used for a popup. It handles only the keys
'y', 'Y' and 'n' or 'N'. Invokes the "callback" of the
popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
@ -216,7 +206,7 @@ popup_getpos({id}) *popup_getpos()*
core_line screen line of the text box
core_width width of the text box in screen cells
core_height height of the text box in screen cells
visible one if the popup is displayed, zero if hidden
visible one if the popup is displayed, zero if hidden
Note that these are the actual screen positions. They differ
from the values in `popup_getoptions()` for the sizing and
positioning mechanism applied.
@ -235,7 +225,7 @@ popup_hide({id}) *popup_hide()*
popup_menu({text}, {options}) *popup_menu()*
{not implemented yet}
{not implemented yet}
Show the {text} near the cursor, handle selecting one of the
items with cursorkeys, and close it an item is selected with
Space or Enter. {text} should have multiple lines to make this
@ -260,7 +250,7 @@ popup_move({id}, {options}) *popup_move()*
popup_notification({text}, {options}) *popup_notification()*
{not implemented yet}
{not implemented yet}
Show the {text} for 3 seconds at the top of the Vim window.
This works like: >
call popup_create({text}, {
@ -281,7 +271,7 @@ popup_show({id}) *popup_show()*
popup_setoptions({id}, {options}) *popup_setoptions()*
{not implemented yet}
{not implemented yet}
Override options in popup {id} with entries in {options}.
@ -292,7 +282,7 @@ A new buffer is created to hold the text and text properties of the popup
window. The buffer is always associated with the popup window and
manipulation is restricted:
- the buffer has no name
- 'buftype' is "popup"
- 'buftype' is "popup"
- 'swapfile' is off
- 'bufhidden' is "hide"
- 'buflisted' is off
@ -424,7 +414,7 @@ The second argument of |popup_create()| is a dictionary with options:
{start} or after {end}
The popup also closes if the cursor moves to another
line or to another window.
filter A callback that can filter typed characters, see
filter A callback that can filter typed characters, see
|popup-filter|.
callback A callback that is called when the popup closes, e.g.
when using |popup_filter_menu()|, see |popup-callback|.
@ -486,7 +476,7 @@ key, e.g.: >
return 1
endif
return 0
endfunc
endfunc
Currently the key is what results after any mapping. This may change...

View File

@ -1351,6 +1351,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+scrollbind various.txt /*+scrollbind*
+signs various.txt /*+signs*
+smartindent various.txt /*+smartindent*
+sound various.txt /*+sound*
+spell various.txt /*+spell*
+startuptime various.txt /*+startuptime*
+statusline various.txt /*+statusline*
+sun_workshop various.txt /*+sun_workshop*
@ -2816,8 +2818,6 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:pop tagsrch.txt /*:pop*
:popu gui.txt /*:popu*
:popup gui.txt /*:popup*
:popupc popup.txt /*:popupc*
:popupclear popup.txt /*:popupclear*
:pp windows.txt /*:pp*
:ppop windows.txt /*:ppop*
:pr various.txt /*:pr*
@ -6138,6 +6138,7 @@ exp() eval.txt /*exp()*
expand() eval.txt /*expand()*
expand-env options.txt /*expand-env*
expand-environment-var options.txt /*expand-environment-var*
expandcmd() eval.txt /*expandcmd()*
expr eval.txt /*expr*
expr-! eval.txt /*expr-!*
expr-!= eval.txt /*expr-!=*
@ -8227,6 +8228,7 @@ popup-props popup.txt /*popup-props*
popup-window popup.txt /*popup-window*
popup.txt popup.txt /*popup.txt*
popup_atcursor() popup.txt /*popup_atcursor()*
popup_clear() popup.txt /*popup_clear()*
popup_close() popup.txt /*popup_close()*
popup_create() popup.txt /*popup_create()*
popup_create-usage popup.txt /*popup_create-usage*
@ -8581,6 +8583,9 @@ script-variable eval.txt /*script-variable*
scriptnames-dictionary eval.txt /*scriptnames-dictionary*
scriptout-changed version4.txt /*scriptout-changed*
scriptversion eval.txt /*scriptversion*
scriptversion-1 eval.txt /*scriptversion-1*
scriptversion-2 eval.txt /*scriptversion-2*
scriptversion-3 eval.txt /*scriptversion-3*
scroll-binding scroll.txt /*scroll-binding*
scroll-cursor scroll.txt /*scroll-cursor*
scroll-down scroll.txt /*scroll-down*
@ -8690,6 +8695,10 @@ slow-terminal term.txt /*slow-terminal*
socket-interface channel.txt /*socket-interface*
sort() eval.txt /*sort()*
sorting change.txt /*sorting*
sound_clear() eval.txt /*sound_clear()*
sound_playevent() eval.txt /*sound_playevent()*
sound_playfile() eval.txt /*sound_playfile()*
sound_stop() eval.txt /*sound_stop()*
soundfold() eval.txt /*soundfold()*
space intro.txt /*space*
spec-customizing pi_spec.txt /*spec-customizing*

View File

@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.1. Last change: 2019 Jun 02
*tagsrch.txt* For Vim version 8.1. Last change: 2019 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -85,18 +85,21 @@ changed, to avoid confusion when using ":tnext". It is changed when using
":tag {name}".
The ignore-case matches are not found for a ":tag" command when:
- the 'ignorecase' option is off and 'tagcase' is "followic"
- 'tagcase' is "followic" and the 'ignorecase' option is off
- 'tagcase' is "followscs" and the 'ignorecase' option is off and the
'smartcase' option is off or the pattern contains an upper case character.
- 'tagcase' is "match"
- 'tagcase' is "smart" and the pattern contains an upper case character.
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
contains an upper case character.
The ignore-case matches are found when:
- a pattern is used (starting with a "/")
- for ":tselect"
- when 'tagcase' is "followic" and 'ignorecase' is off
- when 'tagcase' is "match"
- when 'tagcase' is "followscs" and the 'smartcase' option is off
- when 'tagcase' is "followic" and 'ignorecase' is on
- when 'tagcase' is "followscs" and 'ignorecase' is on or the 'smartcase'
option is on and the pattern does not contain an upper case character
- when 'tagcase' is "ignore"
- when 'tagcase' is "smart" and the patter does not contain an upper case
character
Note that using ignore-case tag searching disables binary searching in the
tags file, which causes a slowdown. This can be avoided by fold-case sorting
@ -503,7 +506,7 @@ Some programs that generate tags files:
ctags As found on most Unix systems. Only supports C. Only
does the basic work.
*Exuberant_ctags*
exuberant ctags This a very good one. It works for C, C++, Java,
exuberant ctags This is a very good one. It works for C, C++, Java,
Fortran, Eiffel and others. It can generate tags for
many items. See http://ctags.sourceforge.net.
etags Connected to Emacs. Supports many languages.
@ -824,7 +827,7 @@ CTRL-W d Open a new window, with the cursor on the first
(default: whole file).
See |:search-args| for [/] and [!].
*:che* *:chec* *:check* *:checkpath*
*:che* *:chec* *:check* *:checkpath*
:che[ckpath] List all the included files that could not be found.
:che[ckpath]! List all the included files.
@ -895,7 +898,7 @@ The following fields are optional:
If the function returns |v:null| instead of a List, a standard tag lookup will
be performed instead.
It is not allowed to change the tagstack from inside 'tagfunc'. *E986*
It is not allowed to change the tagstack from inside 'tagfunc'. *E986*
The following is a hypothetical example of a function used for 'tagfunc'. It
uses the output of |taglist()| to generate the result: a list of tags in the

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.1. Last change: 2019 Jun 06
*todo.txt* For Vim version 8.1. Last change: 2019 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -42,23 +42,22 @@ Ongoing work on text properties, see src/textprop.c
Popup windows are being implemented, see |popup-window|.
Listener causes extra } to be inserted. (Paul Jolly, #4455)
Include tests:
test_assert.vim
test_paste.vim
shared.vim
Patch to fix session file when using multiple tabs. (Jason Franklin, 2019 May
20)
Also put :argadd commands at the start for all buffers, so that their order
remains equal? Then %argdel to clean it up. Do try this with 'hidden' set.
Patch for Chinese translations for nsis. (#4407) Comments handled?
Patch to add v:searchstat. (Takuya Fujiwara, #4446) Should be independent of
'shortmess', filled on demand and cached until search changes.
listener callback is invoked while another is still busy? (Paul Jolly)
Should not happen because of text lock.
Listener causes extra } to be inserted. (Paul Jolly, #4455)
When 'rightleft' is set search pattern is not displayed. (#4488)
Caused by 8.1.1375 ?
Improvement to Travis config: Ozaki Kiichi, #4521
'incsearch' with :s: (#3321)
- Get E20 when using command history to get "'<,'>s/a/b" and no Visual area
@ -173,8 +172,14 @@ it's in a mapping. (2018 Oct 6, #2302, #3522)
Internal diff doesn't handle binary file like external diff does. (Mike
Williams, 2018 Oct 30)
Add "number" to 'signcolumn': Put signs in the number column if it exists.
Otherwise behave like "yes". (Adam Stankiewicz, #4515)
Problem with :tlmenu: Detach item added with all modes? Issue #3563.
Patch to use timers in matchparen. (Daniel Hahler, #1338)
Ready to include now?
The quoting of the [command] argument of :terminal is not clearly documented.
Give a few examples. (#4288)
@ -190,10 +195,17 @@ Problem with colors in terminal window. (Jason Franklin, 2019 May 12)
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
Mar 5)
Should we include some part of pull request #4505, not increment changedtick
in some cases? E.g. for ":write" when the changed flag was already off, the
buffer didn't change at all.
Patch to add getreginfo() and setreg() with an option to set the unnamed
register "", So that registers can be saved and fully restored.
(Andy Massimino, 2018 Aug 24, #3370)
Line numbers in profile are off when function was defined with ":execute".
(Daniel Hahler, #4511)
Add a way to create an empty, hidden buffer. Like doing ":new|hide".
":let buf = bufcreate('name')

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.1. Last change: 2019 Jun 02
*various.txt* For Vim version 8.1. Last change: 2019 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -428,6 +428,8 @@ m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
T *+scrollbind* |'scrollbind'|
B *+signs* |:sign|
N *+smartindent* |'smartindent'|
B *+sound* |sound_playevent()|, |sound_playfile()| functions, etc.
N *+spell* spell checking support, see |spell|
N *+startuptime* |--startuptime| argument
N *+statusline* Options 'statusline', 'rulerformat' and special
formats of 'titlestring' and 'iconstring'

View File

@ -4,9 +4,10 @@
" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
" Original author: Mario Eusebio
" Last Change: Mon Jan 23 2017
" added support for cell mode
" Last Change: June 10 2019
" added highlight rule for double-quoted string literals
" Change History:
" - double-quoted string literals added
" - now highlights cell-mode separator comments
" - 'global' and 'persistent' keyword are now recognized
@ -40,6 +41,7 @@ syn match matlabLineContinuation "\.\{3}"
" String
" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
syn region matlabString start=+'+ end=+'+ oneline skip=+''+
syn region matlabStringArray start=+"+ end=+"+ oneline skip=+""+
" If you don't like tabs
syn match matlabTab "\t"
@ -87,6 +89,7 @@ hi def link matlabExceptions Conditional
hi def link matlabRepeat Repeat
hi def link matlabTodo Todo
hi def link matlabString String
hi def link matlabStringArray String
hi def link matlabDelimiter Identifier
hi def link matlabTransposeOther Identifier
hi def link matlabNumber Number

View File

@ -1,7 +1,7 @@
" Vim syntax file
" Language: TypeScript
" Maintainer: Bram Moolenaar
" Last Change: 2019 Jun 06
" Last Change: 2019 Jun 07
" Based On: Herrington Darkholme's yats.vim
" Changes: See https:github.com/HerringtonDarkholme/yats.vim
" Credits: See yats.vim
@ -791,6 +791,12 @@ if get(g:, 'yats_host_keyword', 1)
syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName clearInterval
hi def link typescriptNodeGlobal Structure
syntax keyword typescriptGlobal containedin=typescriptIdentifierName describe it test
syntax keyword typescriptGlobal containedin=typescriptIdentifierName before after
syntax keyword typescriptGlobal containedin=typescriptIdentifierName beforeEach afterEach
syntax keyword typescriptGlobal containedin=typescriptIdentifierName beforeAll afterAll
syntax keyword typescriptGlobal containedin=typescriptIdentifierName expect assert
"runtime syntax/yats/web.vim
syntax keyword typescriptBOM containedin=typescriptIdentifierName AbortController
syntax keyword typescriptBOM containedin=typescriptIdentifierName AbstractWorker AnalyserNode

968
runtime/tutor/tutor.ko Normal file
View File

@ -0,0 +1,968 @@
===============================================================================
= 빔 길잡이 (VIM Tutor) 에 오신 것을 환영합니다 - Version 1.7 =
===============================================================================
빔(Vim)은 이 길잡이에서 다 설명할 수 없을 만큼 많은 명령을 가진
매우 강력한 편집기입니다. 이 길잡이는 빔을 쉽게 전천후 편집기로 사용할
수 있도록 충분한 명령에 대해 설명하고 있습니다.
이 길잡이를 떼는 데에는 실습하는 데에 얼마나 시간을 쓰는 가에 따라서
25-30 분 정도가 걸립니다.
이 연습에 포함된 명령은 내용을 고칩니다. 이 파일의 복사본을 만들어서
연습하세요. (vimtutor 를 통해 시작했다면, 이미 복사본을 사용하는
중입니다.)
중요한 것은, 이 길잡이가 직접 써보면서 배우도록 고려되어 있다는 것입니다.
명령을 제대로 익히려면, 직접 실행해보는 것이 필요합니다. 내용을 읽는
것만으로는, 명령을 잊어버리게 될 것입니다.
자 이제, Caps Lock(Shift-Lock) 키가 눌려있지 않은지 확인해보시고, j 키를
충분히 눌러서 Lesson 1.1이 화면에 가득 차도록 움직여봅시다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.1: 커서 움직이기
** 커서를 움직이려면, 표시된 대로 h,j,k,l 키를 누르십시오. **
^
k 힌트: h 키는 왼쪽에 있으며, 왼쪽으로 움직입니다.
< h l > l 키는 오른쪽에 있으며, 오른쪽으로
j 움직입니다.
v j 키는 아래방향 화살표처럼 생겼습니다.
1. 익숙해질 때까지 커서를 스크린 상에서 움직여 보십시오.
2. 아래 방향키 (j)를 반복입력이 될 때까지 누르고 계십시오.
이제 다음 lesson으로 가는 방법을 알게 되었습니다.
3. 아래 방향키를 이용하여, Lesson 1.2 로 가십시오.
참고: 원하지 않는 무언가가 입력이 되었다면, <ESC>를 눌러서, 명령 모드로
돌아가십시오. 그 후에 원하는 명령을 다시 입력하십시오.
참고: 커서키 또한 작동할 것입니다. 하지만 hjkl에 익숙해지면, 커서키보다
훨씬 빠르게 이동할 수 있을 것입니다. 정말요!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.2: 빔을 시작하고 끝내기
!! 주의: 아래 있는 단계를 실행하기 전에, 이 lesson 전체를 읽으십시오!!
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
2. 다음과 같이 입력합니다: :q! <ENTER>
이렇게 하면, 바뀐 내용을 *저장하지 않고* 편집기를 빠져나갑니다.
3. 쉘 프롬프트가 보인다면, 다시 길잡이로 돌아오기 위해 다음과 같이
입력합니다.
vimtutor <ENTER>
또는 다음과 같을 수도 있습니다.
vim tutor.ko <ENTER>
---> 'vim' 은 빔 편집기로 들어가는 것을 뜻하며, 'tutor.ko'는 편집하려는
파일을 뜻합니다.
4. 위에서 이야기한 단계를 기억하였으며, 확신이 서면, 1에서 3까지를
수행하여 편집기를 나갔다가 다시 들어와 보십시오.
주의: :q! <ENTER> 는 바뀐 내용을 저장하지 않습니다. 이 후 lesson에서
어떻게 편집 내용을 저장하는지 배울 수 있습니다.
5. 그 후 커서를 아래로 움직여 Lesson 1.3 으로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.3: 텍스트 편집 - 지우기
** 명령 모드에서 x 를 누르면 커서가 위치한 곳의 글자를 지울 수 있습니다. **
1. ----> 로 표시된 곳으로 커서를 옮겨보십시오.
2. 오타를 수정하기 위해, 커서를 지울 글자 위로 움직여 보십시오.
3. x 키를 눌러서 지워야할 글자를 지우십시오.
4. 2에서 4까지를 반복하여 문장이 올바르게 되도록 하여 보십시오.
---> The ccow jumpedd ovverr thhe mooon.
5. 문장이 정확해졌다면, Lesson 1.4로 가십시오.
주의: 이 길잡이를 보면서 외우려고 하지말고, 직접 사용해보면서 익히길
바랍니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.4: 텍스트 편집 - 삽입 (INSERTION)
** 명령 모드에서 i 를 누르면 텍스트를 입력할 수 있습니다. **
1. 커서를 첫번째 ---> 로 표시된 줄로 움직입니다.
2. 첫번째 줄을 두번째 줄과 똑같이 만들것입니다. 텍스트가 들어가야할
곳 다음부터 첫번째 글자 위에 커서를 옮겨 놓습니다.
3. i 키를 누른 후, 필요한 내용을 입력합니다.
4. 수정한 후에는 <ESC> 를 눌러서 명령 모드로 돌아갑니다.
문장을 올바르게 만들기 위해 2에서 4의 과정을 반복합니다.
---> There is text misng this .
---> There is some text missing from this line.
5. 텍스트를 삽입하는 데에 익숙해졌다면, Lesson 1.5로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.5: 택스트 편집 - 추가 (APPENDING)
** A 를 입력해 텍스트를 추가할 수 있습니다. **
1. 커서를 첫번째 ---> 로 표시된 줄로 움직입니다.
커서가 문장 내 어디에 있던 상관없습니다.
2. A 키를 눌러 필요한 내용을 입력합니다.
3. 내용을 모두 입력한 후 <ESC>를 눌러 명령 모드로 돌아갑니다.
4. 커서를 두번째 ---> 로 표시된 줄로 움직입니다.
문장을 올바르게 만들기 위해 2에서 3의 과정을 반복합니다.
---> There is some text missing from th
There is some text missing from this line.
---> There is also some text miss
There is also some text missing here.
5. 텍스트를 추가하는 데 익숙해졌다면, Lesson 1.6으로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.6: 파일 편집
** :wq 를 이용하여 파일을 저장하고 빠져나갈 수 있습니다. **
!! 주의: 아래 있는 단계를 실행하기 전에, 이 lesson 전체를 읽으십시오!!
1. lesson 1.2에서 배웠던 것처럼 :q!로 편집기를 나갈 수 있습니다.
만약, 다른 터미널에 접근 가능하다면, 아래의 단계를 다른 터미널에서 해봅니다.
2. 쉘 프롬프트에 다음과 같이 입력합니다: vim tutor <ENTER>
'vim' 은 빔 에디터 시작을 위한 명령어, 'tutor'는 수정하고자 하는
파일의 이름 입니다.
3. 앞에서 배웠던 것처럼 텍스트를 삽입하고 지워보세요.
4. 다음 명령어를 이용해 파일 수정 부분을 저장하고 빠져나갑니다: :wq <ENTER>
5. 만약 1에서 vimtutor를 빠져나갔다가 다시 들어왔다면, 아래로 움직여 요약으로 넘어가도록 합시다.
6. 위 모든 단계를 다 읽고 이해한 후에 직접 해보세요.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 1 요약
1. 커서를 움직일 때에는 화살표 키나 hjkl 키를 이용합니다.
h (왼쪽) j (아래) k (위) l (오른쪽)
2. 쉘 프롬프트에서 빔을 시작하려면 vim FILENAME <ENTER>
3. 수정한 내용을 무시한 채로 빔에서 빠져나가려면 <ESC> :q! <ENTER>
저장한 후 빔에서 빠져나가려면 <ESC> :wq <ENTER>
4. 명령 모드에서 커서가 위치한 곳의 글자를 지우려면 x 를 입력합니다.
5. 명령 모드에서 커서가 위치한 곳에 텍스트를 삽입하려면
i 를 누른 후 텍스트를 입력하고 <ESC> 커서 앞에 삽입합니다.
A 를 누른 후 텍스트를 입력하고 <ESC> 문장 뒤에 추가 합니다.
참고: <ESC>는 명령 모드로 돌아가는 데 쓰며, 원치 않는 명령이나 완전히 입력되지
않은 명령을 취소하는 데에도 씁니다.
그럼 Lesson 2를 시작합시다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.1: 삭제(DELETION) 명령
** 한 단어를 끝까지 지우려면 dw 라고 치면 됩니다. **
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
2. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
3. 지워야할 단어의 처음으로 커서를 옮깁니다.
4. dw 라고 쳐서 그 단어를 지웁니다.
주의: 위에서 말한대로 하면 화면의 마지막 줄에 dw 라는 글자가 표시됩니다.
잘못 쳤다면, <ESC> 를 눌러서 다시 시작하십시오.
---> There are a some words fun that don't belong paper in this sentence.
5. 3, 4번 과정을 다시 하여 문장을 정확하게 만든 뒤 Lesson 2.2로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.2: 다른 삭제 명령
** d$ 라고 치면 그 줄 끝까지 지워집니다. **
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
2. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
3. 올바른 줄의 끝으로 커서를 옮깁니다. (첫번째로 나오는 . 다음입니다.)
4. d$ 라고 쳐서 줄 끝까지 지웁니다.
---> Somebody typed the end of this line twice. end of this line twice.
5. 어떤 일이 일어났는지 이해하기 위해 Lesson 2.3 으로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.3: 명령과 적용 대상에 대해
삭제 명령 d의 형식은 다음과 같습니다.
d 대상
여기서:
d - 지우는 명령
대상 - 아래에 제시된 대상에 대해 명령을 수행
적용 가능한 대상의 종류:
w - 커서에서 그 단어의 끝까지 (공백 포함.)
e - 커서에서 그 단어의 끝까지 (공백을 포함하지 않음.)
$ - 커서에서 그 줄의 끝까지
예를 들어, de 는 커서의 위치부터 해당 단어의 끝까지 지웁니다.
참고: 호기심이 있다면, 명령 모드에서 명령 없이 대상을 입력해보십시오.
위에서 이야기한 대상의 목록에 따라 커서가 움직이게 됩니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.4: 대상에 반복 적용하기
** 대상 이전에 숫자를 넣어주면 그 만큼 반복 됩니다. **
1. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
2. 2w 입력하여 커서를 단어 두 개 뒤로 옮깁니다.
3. 3e 입력하여 커서를 뒤로 세 번째 단어의 끝으로 옮깁니다.
4. 0 (zero) 를 입력하여 문장의 시작부분으로 움직입니다.
5. 2에서 3까지를 다른 숫자로 반복해 봅니다.
---> This is just a line with words you can move around in.
6. Lesson 2.5로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.5: 삭제에 반복 적용하기
** 명령과 숫자를 함께 사용하면 그만큼 반복 수행 됩니다. **
위에서 삭제 명령과 대상의 조합과 같이, 대상 이전에 횟수를 넣어 더 많이 삭제 할 수 있습니다:
d 횟수 대상
1. 아래 ---> 표시된 줄에서 커서를 첫번째 대문자 단어로 옮깁니다.
2. d2w를 입력하여 두 대문자 단어를 지웁니다.
3. 이어지는 대문자 단어들을 1에서 2까지의 단계를 이용해 횟수를 바꾸어 삭제해 봅니다.
---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.6: 줄 전체 조작하기
** dd 라고 치면 줄 전체를 지웁니다. **
줄 전체를 지우는 일이 잦기 때문에, Vi를 디자인 한 사람들은, 간단히 d를
두번 연달아 치면 한 줄을 지울 수 있도록 하였습니다.
1. 커서를 아래 나온 단락의 두번째 줄로 가져가십시오.
2. dd 를 입력하여 그 줄을 지우십시오.
3. 그런 다음 네번째 줄로 가십시오.
4. 2dd 라고 입력하여 두줄을 지웁니다. ( 횟수-명령-대상을 기억하세요. )
---> 1) Roses are red,
---> 2) Mud is fun,
---> 3) Violets are blue,
---> 4) I have a car,
---> 5) Clocks tell time,
---> 6) Sugar is sweet
---> 7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.7: 취소(UNDO) 명령
** u 를 누르면 마지막 명령이 취소되며, U 는 줄 전체를 수정합니다. **
1. 커서를 ---> 로 표시된 줄로 이동한 후 첫번째 잘못된 부분 위로 옮깁니다.
2. x 를 입력하여 첫번째 잘못된 글자를 지웁니다.
3. 그럼 이제 u 를 입력하여 마지막으로 수행된 명령을 취소합니다.
4. 이번에는 x 명령을 이용하여 그 줄의 모든 에러를 수정해봅시다.
5. 대문자 U 를 눌러서 그 줄을 원래 상태로 돌려놓아 보십시오.
6. 이번에는 u 를 몇 번 눌러서 U 와 이전 명령을 취소해봅시다.
7. CTRL-R (CTRL 키를 누른 상태에서 R을 누르는 것) 을 몇 번 눌러서
명령을 다시 실행해봅시다. (취소한 것을 취소함.)
---> Fiix the errors oon thhis line and reeplace them witth undo.
8. 이 명령은 매우 유용합니다. 그럼 Lesson 2 요약으로 넘어가도록 합시다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 2 요약
1. 커서가 위치한 곳부터 단어의 끝까지 지우려면: dw
2. 커서가 위치한 곳부터 줄 끝까지 지우려면: d$
3. 줄 전체를 지우려면: dd
4. 횟수와 함께 대상을 반복 시키려면: 2w
5. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:
[횟수] 명령 대상 또는 명령 [횟수] 대상
여기서:
횟수 - 그 명령을 몇 번 반복할 것인가
명령 - 어떤 명령을 내릴 것인가 ( 예를 들어, 삭제인 경우는 d )
대상 - 명령이 동작할 대상, 예를 들어 w (단어), $ (줄의 끝) 등.
6. 커서를 문장 맨 앞으로 옮기려면: 0
7. 이전 행동을 취소하려면: u (소문자 u)
한 줄에서 수정한 것을 모두 취소하려면: U (대문자 U)
취소한 것을 다시 실행하려면: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.1: 붙이기(PUT) 명령
** p 를 입력하여 마지막으로 지운 내용을 커서 뒤에 붙입니다. **
1. 아래에 있는 문단의 첫 줄로 커서를 움직이십시오.
2. dd 를 입력하여 그 줄을 지워서 빔의 버퍼에 저장합니다.
3. 아까 지운 줄이 가야할 위치의 *윗줄로* 커서를 옮깁니다.
4. 명령 모드에서, p 를 입력하여 그 줄을 제대로 된 자리로 옮깁니다.
5. 2에서 4를 반복하여 모든 줄의 순서를 바로 잡으십시오.
d) Can you learn too?
b) Violets are blue,
c) Intelligence is learned,
a) Roses are red,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.2: 치환(REPLACE) 명령
** 커서 아래의 글자 하나를 바꾸려면, r 을 누른 후 바꿀 글자를 입력합니다. **
1. 커서를 ---> 로 표시된 첫 줄로 옮깁니다.
2. 커서를 잘못된 첫 부분으로 옮깁니다.
3. r 을 누른 후, 잘못된 부분을 고쳐 쓸 글자를 입력합니다.
4. 2에서 3의 과정을 반복하여, 첫 줄의 오류를 수정하십시오.
---> Whan this lime was tuoed in, someone presswd some wrojg keys!
---> When this line was typed in, someone pressed some wrong keys!
5. Lesson 3.2 로 이동합시다.
주의: 외우지 말고, 직접 해보면서 익혀야 한다는 것을 잊지 마십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.3: 변환(CHANGE) 명령
** 한 단어의 전체를 바꾸려면, ce 를 치십시오. **
1. 커서를 ---> 로 표시된 첫줄로 옮깁니다.
2. 커서를 lubw 에서 u 위에 올려놓습니다.
3. ce 라고 명령한 후 단어를 정확하게 수정합니다. (이 경우, 'ine' 를 칩니다.)
4. <ESC> 를 누른 후 다음 에러로 갑니다 (수정되어야할 첫 글자로 갑니다.)
5. 3에서 4의 과정을 반복하여 첫번째 문장을 두번째 문장과 같도록 만듭니다.
---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.
ce 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있도록 한다는 것에
유의합시다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.4: c 를 이용한 다른 변환 명령
** 변환 명령은 삭제할 때 이용한 대상에 대해 적용할 수 있습니다. **
1. 변환 명령은 삭제와 동일한 방식으로 동작합니다. 형식은 다음과 같습니다:
[횟수] c 대상 또는 c [횟수] 대상
2. 적용 가능한 대상 역시 같습니다. w (단어), $ (줄의 끝) 등이 있습니다.
3. ---> 로 표시된 첫줄로 이동합니다.
4. 첫 에러 위로 커서를 옮깁니다.
5. c$ 를 입력하여, 그 줄의 나머지가 두번째 줄처럼 되도록 수정한 후 <ESC> 를
누르십시오.
---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the c$ command.
참고: 입력하는 동안은 백스페이스를 이용할 수 있습니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 3 요약
1. 이미 지운 내용을 되돌리려면, p 를 누르십시오. 이 명령은 커서 *다음에*
지워진 내용을 붙입니다(PUT). (한 줄을 지운 경우에는 커서 다음 줄에
지워진 내용이 붙습니다.)
2. 커서 아래의 글자를 치환하려면(REPLACE), r 을 누른 후 원래 글자 대신
바꾸어 넣을 글자를 입력합니다.
3. 변환 명령(CHANGE)은 커서에서 부터 지정한 대상의 끝까지 바꿀 수 있는
명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면 ce 를
입력하면 되며, c$ 는 줄 끝까지 바꾸는 데 쓰입니다.
4. 변환 명령의 형식은 다음과 같습니다:
[횟수] c 대상 또는 c [횟수] 대상
계속해서 다음 Lesson 을 진행합시다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.1: 위치와 파일의 상태
** CTRL-G 를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있습니다.
G 를 누르면 파일 내의 마지막 줄로 이동합니다. **
주의: 아래의 단계를 따라하기 전에, 이 Lesson 전체를 먼저 읽으십시오.
1. CTRL 키를 누른 상태에서 g 를 누릅니다. 파일 이름과 현재 위치한 줄이
표시된 상태줄이 화면 아래에 표시될 것입니다. 3번째 단계를 위해 그
줄 번호를 기억하고 계십시오.
참고: 커서가 화면 오른쪽 하단으로 옮겨진 것을 보인다면,
이는 'ruler' 옵션을 세팅된 경우 입니다. (:help 'ruler' 를 참고 하세요.)
2. G 를 누르면 파일의 마지막으로 이동합니다.
gg 를 누르면 파일의 시작 부분으로 이동합니다.
3. 아까 기억했던 줄 번호를 입력한 후 G 를 누르십시오. 이렇게 하면
처음에 CTRL-G 를 눌렀던 장소로 되돌아가게 될 것입니다.
(번호를 입력할 때, 이것은 화면에 표시되지 않습니다.)
4. 자신이 생겼다면, 1에서 3까지를 실행해보십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.2: 찾기 명령
** / 를 누른 후 검색할 문구를 입력하십시오. **
1. 명령 모드에서 / 를 입력하십시오. : 명령에서와 마찬가지로, 화면 아래에
/ 와 커서가 표시될 것입니다.
2. 'errroor' 라고 친 후 <ENTER> 를 치십시오. 이 단어를 찾으려고 합니다.
3. 같은 문구를 다시 찾으려면, 간단히 n 을 입력하십시오.
같은 문구를 반대 방향으로 찾으려면, Shift-N 을 입력하십시오.
4. 문구를 역방향으로 찾으려면, / 대신 ? 를 이용하면 됩니다.
5. 원래 있던 곳으로 돌아가기 위해서는 CTRL-O 를 이용하면 됩니다. 반복하면 더 이전으로도
갈 수 있습니다. CTRL-I 로 다시 뒤로 갈 수도 있습니다.
---> "errroor" is not the way to spell error; errroor is an error.
참고: 찾는 중에 파일의 끝에 다다르게 되면, 파일의 처음부터 다시 찾게 됩니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.3: 괄호의 짝 찾기
** % 를 눌러서 ), ], } 의 짝을 찾습니다. **
1. 커서를 ---> 로 표시된 줄의 (, [, { 중 하나에 가져다 놓습니다.
2. % 를 입력해 봅시다.
3. 커서가 짝이 맞는 괄호로 이동할 것입니다.
4. % 를 입력하여, 이전 괄호로 되돌아 옵시다.
5. 커서를 다른 (,),[,],{ 혹은 } 로 움직여 % 를 입력해 봅니다.
---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
참고: 짝이 맞지 않는 괄호가 있는 프로그램을 디버깅할 때에 매우 유용합니다!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.4: 치환(SUBTITUTE) 명령
** :s/old/new/g 하면 'old' 를 'new' 로 치환(SUBTITUTE)합니다. **
1. 커서를 ---> 로 표시된 줄에 가져다 놓습니다.
2. :s/thee/the 를 입력한 후 <ENTER> 를 칩니다. 이 명령은 그 줄에서
처음으로 발견된 것만 바꾼다는 것에 주의하십시오.
3. 이번에는 :s/thee/the/g 를 입력합니다. 이는 그 줄 전체(globally)를
치환한다는 것을 의미합니다.
---> thee best time to see thee flowers is in thee spring.
4. 두 줄 사이의 모든 문자열에 대해 치환하려면 다음과 같이 합니다,
:#,#s/old/new/g #,# 는 두 줄의 줄번호를 뜻합니다.
:%s/old/new/g 파일 전체에서 발견된 모든 것을 치환하는 경우입니다.
:%s/old/new/gc 파일 전체에서 발견된 모든 것을 찾고, 치환할지 안
할지 프롬프트로 명령합니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 4 요약
1. CTRL-G 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
G 파일의 끝으로 이동합니다.
숫자 G 해당 줄로 이동합니다.
gg 첫 번째 라인으로 이동합니다.
2. / 를 입력한 후 문구를 입력하면 그 문구를 아랫방향으로 찾습니다.
? 를 입력한 후 문구를 입력하면 윗방향으로 찾습니다.
검색 후, n 을 입력하면 같은 방향으로 다음 문구를 찾으며,
Shift-N 을 입력하면 반대 방향으로 찾습니다.
CTRL-O 는 과거의 위치로, CTRL-I는 새로운 위치로 옮겨줍니다.
3. 커서가 (,),[,],{,} 위에 있을 때에 % 를 입력하면 상응하는 짝을
찾아갑니다.
4. 어떤 줄에 처음 등장하는 old를 new로 바꾸려면 :s/old/new
한 줄에 등장하는 모든 old를 new로 바꾸려면 :s/old/new/g
두 줄 #,# 사이에서 치환을 하려면 :#,#s/old/new/g
파일 내의 모든 문구를 치환하려면 :%s/old/new/g
바꿀 때마다 확인을 거치려면 'c'를 붙여서 :%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.1: 외부 명령 실행하는 방법
** :! 을 입력한 후 실행하려는 명령을 입력하십시오. **
1. 친숙한 명령인 : 를 입력하면 커서가 화면 아래로 이동합니다. 명령을
입력할 수 있게 됩니다.
2. 이제 ! (느낌표) 를 입력하십시오. 이렇게 하면 외부 쉘 명령을 실행할
수 있습니다.
3. 시험삼아 ! 다음에 ls 를 입력한 후 <ENTER> 를 쳐보십시오. 쉘 프롬프트
에서처럼 디렉토리의 목록이 출력될 것입니다. ls 가 동작하지 않는다면
:!dir 을 시도해 보십시오.
참고: 어떤 외부 명령도 이 방법으로 실행할 수 있습니다.
참고: 모든 : 명령은 <ENTER> 를 쳐야 마무리 됩니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.2: 보다 자세한 파일 저장
** 수정된 내용을 파일로 저장하려면, :w FILENAME 하십시오. **
1. :!dir 또는 :!ls 를 입력하여 디렉토리의 리스트를 얻어옵니다.
위의 명령 후 <ENTER>를 쳐야한다는 것은 이미 알고 있을 것입니다.
2. TEST 처럼 존재하지 않는 파일 이름을 하나 고르십시오.
3. 이제 :w TEST 라고 입력하십시오. (TEST는 당신이 선택한 파일 이름입니다.)
4. 이렇게 하면 빔 길잡이 파일 전체를 TEST라는 이름으로 저장합니다.
확인하려면, :!dir 을 다시 입력하여, 디렉토리를 살펴보십시오.
참고: 빔을 종료한 후, 빔을 다시 실행하여 TEST라는 파일을 열면, 그 파일은
저장했을 때와 완벽히 같은 복사본일 것입니다.
5. 이제 그 파일을 지웁시다.
(MS-DOS에서): !del TEST
(Unix에서): !rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.3: 선택적으로 저장하는 명령
** 파일의 일부를 저장하려면, v 대상 :w FILENAME 을 입력합니다. **
1. 이 줄로 커서를 가져옵니다.
2. v 를 누르고 커서를 아래 다섯번째로 옮깁니다. 이 때, 문자열들이 하이라이트 됨을 주목합니다.
3. : 를 누릅니다. 화면 하단에 :'<,'> 가 나타납니다.
4. w TEST 를 입력합니다. 여기서 TEST는 파일 이름이며 아직 생성되어 있지 않습니다. <ENTER>를
누르기 전, :'<,'>w TEST 로 입력되었는지 확인 합니다.
5. 빔은 선택된 문장들을 TEST 파일에 입력합니다. :!dir 혹은 :!ls를 이용하여 파일이 만들어졌는지
확인하십시오. 아직 삭제하지 마십시오! 다음 레슨에서 이 파일을 사용합니다.
참고 : v 를 눌러 비주얼(Visual) 선택을 시작합니다. 커서를 주변으로 움직여 선택 부분을 조절할 수
있습니다. 그리고 명령어를 이용해 해당 문자열을 조작할 수 있습니다. 예를 들어, d 를 이용해
삭제할 수도 있습니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.4: 파일 읽어들이기, 합치기
** 어떤 파일의 내용을 삽입하려면, :r FILENAME 하십시오 **
1. 커서를 이 라인 바로 위로 옮기십시오.
주의: 3번째 단계를 실행하면, Lesson 5.3 을 보게 될 것입니다. 그렇게 되면
이 lesson으로 다시 내려오십시오.
2. 이제 TEST 파일을 읽어들입시다. :r TEST 명령을 사용하십시오. TEST 는
파일의 이름입니다. 읽어들인 파일은 커서가 위치한 문장 아래부터 놓이게 됩니다.
3. 파일이 읽어들여진 것을 확인하기 위해, 뒤로 이동해서 기존 버전과 파일에서
읽어들인 버전, 이렇게 Lesson 5.3 이 두번 반복되었음을 확인하십시오.
참고: 외부 명령어의 결과값도 읽을 수 있습니다. 예를 들어, :r !ls 는 ls 명령어에 대한 결과값을
읽어 커서 바로 아래에 합칩니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 5 요약
1. :!command 를 이용하여 외부 명령을 실행합니다.
유용한 예:
(MS-DOS) (Unix)
:!dir :!ls - 디렉토리의 목록을 보여준다.
:!del FILENAME :!rm FILENAME - FILENAME이라는 파일을 지운다.
2. :w FILENAME 하면 현재 빔에서 사용하는 파일을 FILENAME이라는 이름으로
디스크에 저장합니다.
3. v 명령 :w FILENAME 은 비주얼 모드에서 선택된 문장들을 파일 FILENAME에 저장합니다.
4. :r FILENAME 은 디스크에서 FILENAME이라는 파일을 불러들여서 커서 위치
뒤에 현재 파일을 집어넣습니다.
5. :r !dir 는 dir 명령어의 결과값을 현재 커서의 위치 아래에 붙힙니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.1: 새 줄 열기(OPEN) 명령
** o 를 누르면 커서 아래에 줄을 만들고 편집 모드가 됩니다. **
1. 아래에 ---> 로 표시된 줄로 커서를 옮기십시오.
2. o (소문자)를 쳐서 커서 *아래에* 줄을 하나 여십시오. 편집 모드가 됩니다.
3. ---> 로 표시된 줄을 복사한 후 <ESC> 를 눌러서 편집 모드에서 나오십시오.
---> After typing o the cursor is placed on the open line in Insert mode.
4. 커서 *위에* 줄을 하나 만드려면, 소문자 o 대신 대문자 O 를 치면 됩니다.
아래 있는 줄에 대해 이 명령을 내려보십시오.
---> Open up a line above this by typing O while the cursor is on this line.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.2: 추가(APPEND) 명령
** a 를 누르면 커서 *다음에* 글을 입력할 수 있습니다. **
1. 커서를 ---> 로 표시된 첫번째 줄의 끝으로 옮깁니다.
2. e 를 눌러 li 의 끝으로 커서를 옮깁니다.
3. 소문자 a 를 커서 아래 글자 *다음*에 글을 추가할 수 있습니다.
4. 아랫줄과 같이 문장을 완성해 봅니다. <ESC>를 이용해 편집(Insert) 모드를 나갑니다.
5. e 를 이용해 다음 고칠 단어로 움직여 3에서 4까지를 반복합니다.
참고: 그렇게 하시면 고작 줄의 끝에 추가를 하기 위해 i를 누르고, 커서 아래에
있던 글자를 반복하고, 글을 끼워넣고, <ESC>를 눌러 명령 모드로 돌아와서,
커서를 오른쪽으로 옮기고 마지막으로 x까지 눌러야 하는 번거로움을 피하실
수 있습니다.
3. 이제 첫 줄을 완성하십시오. 추가 명령은 텍스트가 입력되는 위치 외에는
편집 모드와 완전히 같다는 것을 유념하십시오.
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.
참고: a, i 그리고 A 는 텍스트가 입력되는 위치 외에는 편집 모드와 완전히 같다는 것을 유념하십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.3: 치환(REPLACE) 의 다른 버전
** 대문자 R 을 입력하면 하나 이상의 글자를 바꿀 수 있습니다. **
1. ---> 로 표시된 첫번째 줄로 움직여 커서를 xxx의 앞으로 옮깁니다.
2. R 을 입력한 후, 두번째 줄과 같은 숫자를 입력해 xxx를 치환합니다.
3. <ESC> 를 눌러 치환 모드를 빠져나갑니다. 나머지 문장은 그대로 남아 있는지 확인합니다.
4. 위 단계들 반복하여 남은 모든 xxx를 치환합니다.
---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.
주의: 치환 모드는 편집 모드와 비슷합니다. 하지만 입력된 문자들이 원래 문자들을 삭제하는 점이 다릅니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.4: 문자 복사 붙여넣기(COPY AND PASTE)
** y 를 이용해 복사하고 p 로 붙여 넣습니다. **
1. ---> 로 표시된 줄로 움직여 커서를 "a)" 뒤로 옮깁니다.
2. v 를 눌러 비주얼 모드를 시작하고 "first" 바로 앞까지 커서를 움직입니다.
3. y 를 눌러 하이라이트 된 부분을 복사(yank (copy))합니다.
4. 커서를 다음 문장의 끝으로 옮깁니다: j$
5. p 를 눌러 문자열을 붙여 넣습니다.(paste) 그리고 second <ESC> 를 입력합니다.
6. 비주얼 모드를 이용해 " item."을 선택, y 로 복사, j$ 으로 다음 문장 끝으로 움직여
p 로 단어를 붙여 넣습니다.
---> a) this is the first item.
b)
참고: y 역시 명령어로 사용 가능합니다. 예를 들어, yw 는 한 단어를 복사합니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.5: 옵션 설정(SET)
** 찾기나 바꾸기에서 대소문자 구분을 없애기 위해 옵션을 설정합니다 **
1. 다음을 입력하여 'ignore' 를 찾으십시오: /ignore <ENTER>
n 키를 이용하여 여러번 반복하십시오.
2. 'ic' (대소문자 구별 안함, Ignore case) 옵션을 설정하십시오:
:set ic
3. n 키를 눌러서 'ignore' 를 다시 찾아보십시오.
이제 ignore과 IGNORE 모두 검색되는 점을 주목합니다.
4. 'hlsearch' 와 'incsearch' 옵션을 설정합시다.
:set hls is
5. 찾기 명령을 다시 입력하여, 어떤 일이 일어나는지 확인해 보십시오:
/ignore
6. 대소문자 구별을 끄기 위해서는, 다음과 같이 입력합니다:
:set noic
참고: 찾은 내용이 강조(HIGHLIGHT)된 것을 없애려면: :nohlsearch
참고: 만약, 검색 한번에 대해서만 대소문자 구별 세팅을 끄고 싶다면 \c 를 이용할 수 있습니다.
: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 6 요약
1. o 를 입력하면 커서 *아래에* 한 줄이 열리며, 커서는 편집 모드로
열린 줄 위에 위치하게 됩니다.
대문자 O 를 입력하면 커서가 있는 줄의 *위로* 새 줄을 열게 됩니다.
2. a 를 입력하면 커서 *다음에* 글을 입력할 수 있습니다.
대문자 A 를 입력하면 자동으로 그 줄의 끝에 글자를 추가하게 됩니다.
3. e 를 입력하면 단어의 끝으로 움직입니다.
4. y 를 입력하면 복사(yank (copy))를, p 를 입력하면 붙여 넣기가 됩니다.
5. 대문자 R 을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.
6. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.:
'ic' 'ignorecase' 검색시 대소문자 구별을 하지 않습니다.
'is' 'incsearch' 검색어에서 부분 검색 결과를 보여줍니다.
'hls' 'hlsearch' 검색 결과값을 하이라이트해줍니다.
옵션은 전체 이름 혹은 줄인 이름 모두 사용 가능합니다.
7. 앞에 "no"를 붙여 옵션을 끌 수 있습니다: :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 7.1: 온라인 도움말 명령
** 온라인 도움말 시스템 사용하기 **
빔은 폭 넓은 온라인 도움말 시스템을 제공합니다. 도움말을 보려면,
다음 세가지 중 하나를 시도해보십시오:
- <HELP> 키를 누른다. (키가 있는 경우)
- <F1> 키를 누른다. (키가 있는 경우)
- :help <ENTER> 라고 입력한다.
도움말 창을 닫으려면 :q <ENTER> 라고 입력하십시오.
CTRL-W CTRL-W 다른쪽 윈도우로 넘어갑니다.
:q <ENTER> 도움말 윈도우를 닫습니다.
":help" 라는 명령에 인자를 주면 어떤 주제에 관한 도움말을 찾을 수 있습니다.
다음 명령을 내려 보십시오. ( <ENTER> 키를 누르는 것을 잊지 마십시오.)
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 7.2: 시작 스크립트 만들기
** 빔의 기능 켜기 **
빔은 Vi 보다 훨씬 많은 기능을 가지고 있지만, 대부분은 기본적으로 작동하지
않습니다. 더 많은 기능을 써보려면, "vimrc" 라는 파일을 만들어야 합니다.
1. "vimrc" 파일을 수정합시다. 이 파일은 사용하는 시스템에 따라 다릅니다:
:e ~/.vimrc Unix의 경우
:e $VIM/_vimrc MS-Windows의 경우
2. 이제 "vimrc"의 예제를 읽어들입니다:
:r $VIMRUNTIME/vimrc_example.vim
3. 다음과 같이 하여 파일을 저장합니다:
:w
다음 번에 빔을 시작하면, 구문 강조(syntax highlighting)이 사용될 것입니다.
모든 원하는 설정을 이 "vimrc" 파일에 넣어둘 수 있습니다.
더 자세한 내용은 :help vimrc-intro를 참고 하세요.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7.3: 명령어 완성하기
** CTRL-D 와 <TAB> 이용하여 명령어를 완성할 수 있습니다.**
1. 먼저 vim이 호환 모드가 아닌지를 확인합니다: :set nocp
2. 디렉토리에 파일이 존재하는지 먼저 확인 합니다.: :!ls 혹은 :!dir
3. 다음과 같이 명령어를 입력합니다: :e
4. CTRL-D 를 누르면 "e"로 시작하는 모든 명령어들을 볼 수 있습니다.
5. <TAB> 을 눌러 ":edit" 명령어를 완성해 봅니다.
6. 이제 빈칸 하나를 추가한 뒤, 존재 파일 이름을 앞 부분을 입력합니다: :edit FIL
7. <TAB> 을 눌러 파일 이름을 완성 시킵니다.
참고: 완성하기는 많은 명령어에서 사용할 수 있습니다. CTRL-D와 <TAB> 만 누르세요!
특히, :help 에서 유용할 것입니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7 요약
1. 도움말을 열기 위해 :help 혹은 <F1> 혹은 <Help> 를 누릅니다.
2. cmd 에 대한 도움말을 보기 위해서는 :help cmd 를 입력합니다.
3. CTRL-W CTRL-W 를 이용해 다른 윈도우로 넘어갑니다.
4. :q 로 도움말 윈도우를 빠져나옵니다.
5. vimrc 시작 스크립트를 이용해 선호하는 세팅을 유지할 수 있습니다.
6. : 명령어를 입력할때, CTRL-D 를 눌러 가능한 명령어들을 볼수 있습니다.
<TAB> 을 눌러 완성 가능합니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
이것으로 빔 길잡이를 마칩니다. 이 길잡이는 빔 편집기에 대한 간략한 개요를
보여주기 위한 의도로 제작되었으며, 이 편집기를 정말 간단히 사용하기에
충분할 뿐입니다. 빔에는 이 길잡이와는 비교할 수 없을 만큼 훨씬 많은 명령이
있습니다. 다음 사용자 매뉴얼을 읽으십시오: ":help user-manual"
보다 자세히 읽고 공부하려면, 다음 책을 추천해 드립니다:
Vim - Vi Improved - by Steve Oualline
출판사: New Riders
이 책은 완전히 빔에 대해서만 다루고 있습니다. 특히 초보자들에게 유용합니다.
많은 예제와 그림이 있습니다.
다음을 참고하십시오: http://iccf-holland.org/click5.html
다음 책은 좀 오래된 책으로 빔보다는 Vi에 대해 다루고 있지만, 역시 추천할 만
합니다:
Learning the Vi Editor - by Linda Lamb
출판사: O'Reilly & Associates Inc.
Vi로 하고 싶은 거의 모든 것에 대해 알 수 있는 좋은 책입니다.
여섯번째 개정판은 빔에 관한 내용을 포함하고 있습니다.
이 길잡이는 Colorado School of Mines의 Michael C. Pierce 와
Robert K. Ware 가 Colorado State University의 Charles Smith 의 아이디어에
착안하여 썼습니다.
. E-mail: bware@mines.colorado.edu.
Modified for Vim by Bram Moolenaar.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -1,5 +1,5 @@
===============================================================================
= 빔 길잡이 (VIM Tutor) 에 오신 것을 환영합니다 - Version 1.5 =
= 빔 길잡이 (VIM Tutor) 에 오신 것을 환영합니다 - Version 1.7 =
===============================================================================
빔(Vim)은 이 길잡이에서 다 설명할 수 없을 만큼 많은 명령을 가진
@ -32,15 +32,15 @@
1. 익숙해질 때까지 커서를 스크린 상에서 움직여 보십시오.
2. 아래 방향키 (j)를 반복입력이 될 때까지 누르고 계십시오.
---> 이제 다음 lesson으로 가는 방법을 알게 되었습니다.
이제 다음 lesson으로 가는 방법을 알게 되었습니다.
3. 아래 방향키를 이용하여, Lesson 1.2 로 가십시오.
참고: 원하지 않는 무언가가 입력이 되었다면, <ESC>를 눌러서, 명령 모드로
돌아가십시오. 그 후에 원하는 명령을 다시 입력하십시오.
돌아가십시오. 그 후에 원하는 명령을 다시 입력하십시오.
참고: 커서키 또한 작동할 것입니다. 하지만 hjkl에 익숙해지면, 커서키보다
훨씬 빠르게 이동할 수 있을 것입니다.
훨씬 빠르게 이동할 수 있을 것입니다. 정말요!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.2: 빔을 시작하고 끝내기
@ -51,10 +51,7 @@
1. <ESC> 키를 눌러서 확실하게 명령 모드로 빠져 나옵니다.
2. 다음과 같이 입력합니다: :q! <ENTER>
---> 이렇게 하면, 바뀐 내용을 *저장하지 않고* 편집기를 빠져나갑니다.
저장한 후 빠져나가려면 다음과 같이 입력합니다:
:wq <ENTER>
이렇게 하면, 바뀐 내용을 *저장하지 않고* 편집기를 빠져나갑니다.
3. 쉘 프롬프트가 보인다면, 다시 길잡이로 돌아오기 위해 다음과 같이
입력합니다.
@ -66,8 +63,12 @@
파일을 뜻합니다.
4. 위에서 이야기한 단계를 기억하였으며, 확신이 서면, 1에서 3까지를
수행하여 편집기를 나갔다가 다시 들어와보십시오. 그 후 커서를 아래로
움직여 Lesson 1.3 으로 가십시오.
수행하여 편집기를 나갔다가 다시 들어와 보십시오.
주의: :q! <ENTER> 는 바뀐 내용을 저장하지 않습니다. 이 후 lesson에서
어떻게 편집 내용을 저장하는지 배울 수 있습니다.
5. 그 후 커서를 아래로 움직여 Lesson 1.3 으로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.3: 텍스트 편집 - 지우기
@ -110,10 +111,55 @@
---> There is text misng this .
---> There is some text missing from this line.
5. 텍스트를 삽입하는 데에 익숙해졌다면, 요약을 봐주십시오.
5. 텍스트를 삽입하는 데에 익숙해졌다면, Lesson 1.5로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.5: 택스트 편집 - 추가 (APPENDING)
** A 를 입력해 텍스트를 추가할 수 있습니다. **
1. 커서를 첫번째 ---> 로 표시된 줄로 움직입니다.
커서가 문장 내 어디에 있던 상관없습니다.
2. A 키를 눌러 필요한 내용을 입력합니다.
3. 내용을 모두 입력한 후 <ESC>를 눌러 명령 모드로 돌아갑니다.
4. 커서를 두번째 ---> 로 표시된 줄로 움직입니다.
문장을 올바르게 만들기 위해 2에서 3의 과정을 반복합니다.
---> There is some text missing from th
There is some text missing from this line.
---> There is also some text miss
There is also some text missing here.
5. 텍스트를 추가하는 데 익숙해졌다면, Lesson 1.6으로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.6: 파일 편집
** :wq 를 이용하여 파일을 저장하고 빠져나갈 수 있습니다. **
!! 주의: 아래 있는 단계를 실행하기 전에, 이 lesson 전체를 읽으십시오!!
1. lesson 1.2에서 배웠던 것처럼 :q!로 편집기를 나갈 수 있습니다.
만약, 다른 터미널에 접근 가능하다면, 아래의 단계를 다른 터미널에서 해봅니다.
2. 쉘 프롬프트에 다음과 같이 입력합니다: vim tutor <ENTER>
'vim' 은 빔 에디터 시작을 위한 명령어, 'tutor'는 수정하고자 하는
파일의 이름 입니다.
3. 앞에서 배웠던 것처럼 텍스트를 삽입하고 지워보세요.
4. 다음 명령어를 이용해 파일 수정 부분을 저장하고 빠져나갑니다: :wq <ENTER>
5. 만약 1에서 vimtutor를 빠져나갔다가 다시 들어왔다면, 아래로 움직여 요약으로 넘어가도록 합시다.
6. 위 모든 단계를 다 읽고 이해한 후에 직접 해보세요.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 1 요약
@ -129,14 +175,14 @@
4. 명령 모드에서 커서가 위치한 곳의 글자를 지우려면 x 를 입력합니다.
5. 명령 모드에서 커서가 위치한 곳에 텍스트를 삽입하려면
i 를 누른 후 텍스트를 입력하고 <ESC> 를 누릅니다.
i 를 누른 후 텍스트를 입력하고 <ESC> 커서 앞에 삽입합니다.
A 를 누른 후 텍스트를 입력하고 <ESC> 문장 뒤에 추가 합니다.
참고: <ESC>는 명령 모드로 돌아가는 데 쓰며, 원치 않는 명령이나 완전히 입력되지
않은 명령을 취소하는 데에도 씁니다.
그럼 Lesson 2를 시작합시다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.1: 삭제(DELETION) 명령
@ -180,15 +226,16 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.3: 명령과 적용 대상에 대해
삭제 명령 d의 형식은 다음과 같습니다.
[횟수] d 대상 또는 d [횟수] 대상
여기서
횟수 - 명령을 몇 번 수행할 지 (옵션, 기본값=1).
d 대상
여기서:
d - 지우는 명령
대상 - 아래에 제시된 대상에 대해 명령을 수행
@ -197,13 +244,51 @@
e - 커서에서 그 단어의 끝까지 (공백을 포함하지 않음.)
$ - 커서에서 그 줄의 끝까지
예를 들어, de 는 커서의 위치부터 해당 단어의 끝까지 지웁니다.
참고: 호기심이 있다면, 명령 모드에서 명령 없이 대상을 입력해보십시오.
위에서 이야기한 대상의 목록에 따라 커서가 움직이게 됩니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.4: 대상에 반복 적용하기
** 대상 이전에 숫자를 넣어주면 그 만큼 반복 됩니다. **
1. 아래에 ---> 로 표시된 줄 까지 커서를 옮깁니다.
2. 2w 입력하여 커서를 단어 두 개 뒤로 옮깁니다.
3. 3e 입력하여 커서를 뒤로 세 번째 단어의 끝으로 옮깁니다.
4. 0 (zero) 를 입력하여 문장의 시작부분으로 움직입니다.
5. 2에서 3까지를 다른 숫자로 반복해 봅니다.
---> This is just a line with words you can move around in.
6. Lesson 2.5로 가십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.4: '명령-대상' 에 대한 예외
Lesson 2.5: 삭제에 반복 적용하기
** 명령과 숫자를 함께 사용하면 그만큼 반복 수행 됩니다. **
위에서 삭제 명령과 대상의 조합과 같이, 대상 이전에 횟수를 넣어 더 많이 삭제 할 수 있습니다:
d 횟수 대상
1. 아래 ---> 표시된 줄에서 커서를 첫번째 대문자 단어로 옮깁니다.
2. d2w를 입력하여 두 대문자 단어를 지웁니다.
3. 이어지는 대문자 단어들을 1에서 2까지의 단계를 이용해 횟수를 바꾸어 삭제해 봅니다.
---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.6: 줄 전체 조작하기
** dd 라고 치면 줄 전체를 지웁니다. **
@ -216,17 +301,17 @@
3. 그런 다음 네번째 줄로 가십시오.
4. 2dd 라고 입력하여 두줄을 지웁니다. ( 횟수-명령-대상을 기억하세요. )
1) Roses are red,
2) Mud is fun,
3) Violets are blue,
4) I have a car,
5) Clocks tell time,
6) Sugar is sweet
7) And so are you.
---> 1) Roses are red,
---> 2) Mud is fun,
---> 3) Violets are blue,
---> 4) I have a car,
---> 5) Clocks tell time,
---> 6) Sugar is sweet
---> 7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.5: 취소(UNDO) 명령
Lesson 2.7: 취소(UNDO) 명령
** u 를 누르면 마지막 명령이 취소되며, U 는 줄 전체를 수정합니다. **
@ -252,20 +337,22 @@
1. 커서가 위치한 곳부터 단어의 끝까지 지우려면: dw
2. 커서가 위치한 곳부터 줄 끝까지 지우려면: d$
3. 줄 전체를 지우려면: dd
4. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:
4. 횟수와 함께 대상을 반복 시키려면: 2w
5. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:
[횟수] 명령 대상 또는 명령 [횟수] 대상
여기서:
횟수 - 그 명령을 몇 번 반복할 것인가
명령 - 어떤 명령을 내릴 것인가 ( 예를 들어, 삭제인 경우는 d )
대상 - 명령이 동작할 대상, 예를 들어 w (단어), $ (줄의 끝) 등.
5. 이전 행동을 취소하려면: u (소문자 u)
6. 커서를 문장 맨 앞으로 옮기려면: 0
7. 이전 행동을 취소하려면: u (소문자 u)
한 줄에서 수정한 것을 모두 취소하려면: U (대문자 U)
취소한 것을 다시 실행하려면: CTRL-R
@ -319,13 +406,13 @@
Lesson 3.3: 변환(CHANGE) 명령
** 한 단어의 일부나 전체를 바꾸려면, cw 를 치십시오. **
** 한 단어의 전체를 바꾸려면, ce 를 치십시오. **
1. 커서를 ---> 로 표시된 첫줄로 옮깁니다.
2. 커서를 lubw 에서 u 위에 올려놓습니다.
3. cw 라고 명령한 후 단어를 정확하게 수정합니다. (이 경우, 'ine' 를 칩니다.)
3. ce 라고 명령한 후 단어를 정확하게 수정합니다. (이 경우, 'ine' 를 칩니다.)
4. <ESC> 를 누른 후 다음 에러로 갑니다 (수정되어야할 첫 글자로 갑니다.)
@ -334,8 +421,8 @@
---> This lubw has a few wptfd that mrrf changing usf the change command.
---> This line has a few words that need changing using the change command.
cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있도록 한다는 것에
의합시다.
ce 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있도록 한다는 것에
의합시다.
@ -361,7 +448,7 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the c$ command.
참고: 입력하는 동안은 백스페이스를 이용할 수 있습니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 3 요약
@ -375,7 +462,7 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
바꾸어 넣을 글자를 입력합니다.
3. 변환 명령(CHANGE)은 커서에서 부터 지정한 대상의 끝까지 바꿀 수 있는
명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면, cw
명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면 ce
입력하면 되며, c$ 는 줄 끝까지 바꾸는 데 쓰입니다.
4. 변환 명령의 형식은 다음과 같습니다:
@ -390,8 +477,8 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
Lesson 4.1: 위치와 파일의 상태
** CTRL-g 를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있습니다.
SHIFT-G 를 누르면 파일 내의 마지막 줄로 이동합니다. **
** CTRL-G 를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있습니다.
G 를 누르면 파일 내의 마지막 줄로 이동합니다. **
주의: 아래의 단계를 따라하기 전에, 이 Lesson 전체를 먼저 읽으십시오.
@ -399,10 +486,14 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
표시된 상태줄이 화면 아래에 표시될 것입니다. 3번째 단계를 위해 그
줄 번호를 기억하고 계십시오.
2. SHIFT-G 를 누르면 파일의 마지막으로 이동합니다.
참고: 커서가 화면 오른쪽 하단으로 옮겨진 것을 보인다면,
이는 'ruler' 옵션을 세팅된 경우 입니다. (:help 'ruler' 를 참고 하세요.)
3. 아까 기억했던 줄 번호를 입력한 후 SHIFT-G 를 누르십시오. 이렇게 하면
처음에 CTRL-g 를 눌렀던 장소로 되돌아가게 될 것입니다.
2. G 를 누르면 파일의 마지막으로 이동합니다.
gg 를 누르면 파일의 시작 부분으로 이동합니다.
3. 아까 기억했던 줄 번호를 입력한 후 G 를 누르십시오. 이렇게 하면
처음에 CTRL-G 를 눌렀던 장소로 되돌아가게 될 것입니다.
(번호를 입력할 때, 이것은 화면에 표시되지 않습니다.)
4. 자신이 생겼다면, 1에서 3까지를 실행해보십시오.
@ -425,6 +516,9 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
4. 문구를 역방향으로 찾으려면, / 대신 ? 를 이용하면 됩니다.
5. 원래 있던 곳으로 돌아가기 위해서는 CTRL-O 를 이용하면 됩니다. 반복하면 더 이전으로도
갈 수 있습니다. CTRL-I 로 다시 뒤로 갈 수도 있습니다.
---> "errroor" is not the way to spell error; errroor is an error.
참고: 찾는 중에 파일의 끝에 다다르게 되면, 파일의 처음부터 다시 찾게 됩니다.
@ -444,17 +538,16 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
4. % 를 입력하여, 이전 괄호로 되돌아 옵시다.
5. 커서를 다른 (,),[,],{ 혹은 } 로 움직여 % 를 입력해 봅니다.
---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
참고: 짝이 맞지 않는 괄호가 있는 프로그램을 디버깅할 때에 매우 유용합니다!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.4: 에러를 수정하는 방법
Lesson 4.4: 치환(SUBTITUTE) 명령
** :s/old/new/g 하면 'old' 를 'new' 로 치환(SUBTITUTE)합니다. **
@ -472,22 +565,22 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
4. 두 줄 사이의 모든 문자열에 대해 치환하려면 다음과 같이 합니다,
:#,#s/old/new/g #,# 는 두 줄의 줄번호를 뜻합니다.
:%s/old/new/g 파일 전체에서 발견된 모든 것을 치환하는 경우입니다.
:%s/old/new/gc 파일 전체에서 발견된 모든 것을 찾고, 치환할지 안
할지 프롬프트로 명령합니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 4 요약
1. CTRL-g 는 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
SHIFT-G 는 파일의 끝으로 이동합니다. 줄번호를 입력한 후 SHIFT-G를
입력하면, 그 줄로 이동합니다.
1. CTRL-G 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
G 파일의 끝으로 이동합니다.
숫자 G 해당 줄로 이동합니다.
gg 첫 번째 라인으로 이동합니다.
2. / 를 입력한 후 문구를 입력하면 그 문구를 아랫방향으로 찾습니다.
? 를 입력한 후 문구를 입력하면 윗방향으로 찾습니다.
검색 후, n 을 입력하면 같은 방향으로 다음 문구를 찾으며,
Shift-N 을 입력하면 반대 방향으로 찾습니다.
CTRL-O 는 과거의 위치로, CTRL-I는 새로운 위치로 옮겨줍니다.
3. 커서가 (,),[,],{,} 위에 있을 때에 % 를 입력하면 상응하는 짝을
찾아갑니다.
@ -548,25 +641,23 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.3: 선택적으로 저장하는 명령
** 파일의 일부를 저장하려면, v 대상 :w FILENAME 을 입력합니다. **
** 파일의 일부를 저장하려면, :#,# w FILENAME 하십시오. **
1. 다시 한번, :!dir 이나 :!ls 를 입력하여 디렉토리의 목록을 받아온 후
TEST 같은 적합한 이름을 선택합니다.
2. 커서를 이 페이지의 처음으로 옮긴 후, Ctrl-g 를 입력하여 그 줄의 줄번호를
알아냅니다. 이 번호를 기억하십시오!
3. 이제 이 페이지의 마지막으로 가서 Ctrl-g 를 다시 입력하십시오. 이 줄의
줄번호 또한 기억하십시오!
4. 어떤 섹션만 파일로 저장하려면, :#,# w TEST 를 입력하면 됩니다. 이 때
#,# 는 아까 기억했던 시작과 끝 줄번호 입니다. TEST는 파일 이름입니다.
5. :!dir 을 이용하여 파일이 만들어졌는지 확인하십시오. 지우지는 마십시오.
1. 이 줄로 커서를 가져옵니다.
2. v 를 누르고 커서를 아래 다섯번째로 옮깁니다. 이 때, 문자열들이 하이라이트 됨을 주목합니다.
3. : 를 누릅니다. 화면 하단에 :'<,'> 가 나타납니다.
4. w TEST 를 입력합니다. 여기서 TEST는 파일 이름이며 아직 생성되어 있지 않습니다. <ENTER>를
누르기 전, :'<,'>w TEST 로 입력되었는지 확인 합니다.
5. 빔은 선택된 문장들을 TEST 파일에 입력합니다. :!dir 혹은 :!ls를 이용하여 파일이 만들어졌는지
확인하십시오. 아직 삭제하지 마십시오! 다음 레슨에서 이 파일을 사용합니다.
참고 : v 를 눌러 비주얼(Visual) 선택을 시작합니다. 커서를 주변으로 움직여 선택 부분을 조절할 수
있습니다. 그리고 명령어를 이용해 해당 문자열을 조작할 수 있습니다. 예를 들어, d 를 이용해
삭제할 수도 있습니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.4: 파일 읽어들이기, 합치기
@ -574,22 +665,19 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
** 어떤 파일의 내용을 삽입하려면, :r FILENAME 하십시오 **
1. :!dir 을 입력하여 아까 만든 TEST 파일이 그대로 있는지 확인하십시오.
2. 커서를 이 페이지의 처음으로 움직이십시오.
주의: 3번째 단계를 실행하면, Lesson 5.3 을 보게 될 것입니다. 그렇게 되면
1. 커서를 이 라인 바로 위로 옮기십시오.
주의: 3번째 단계를 실행하면, Lesson 5.3 을 보게 될 것입니다. 그렇게 되면
이 lesson으로 다시 내려오십시오.
2. 이제 TEST 파일을 읽어들입시다. :r TEST 명령을 사용하십시오. TEST 는
파일의 이름입니다. 읽어들인 파일은 커서가 위치한 문장 아래부터 놓이게 됩니다.
3. 이제 TEST 파일을 읽어들입시다. :r TEST 명령을 사용하십시오. TEST 는
파일의 이름입니다.
참고: 읽어들인 파일은 커서가 위치한 지점에서부터 놓이게 됩니다.
4. 파일이 읽어들여진 것을 확인하기 위해, 뒤로 이동해서 기존 버전과 파일에서
3. 파일이 읽어들여진 것을 확인하기 위해, 뒤로 이동해서 기존 버전과 파일에서
읽어들인 버전, 이렇게 Lesson 5.3 이 두번 반복되었음을 확인하십시오.
참고: 외부 명령어의 결과값도 읽을 수 있습니다. 예를 들어, :r !ls 는 ls 명령어에 대한 결과값을
읽어 커서 바로 아래에 합칩니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 5 요약
@ -605,14 +693,12 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
2. :w FILENAME 하면 현재 빔에서 사용하는 파일을 FILENAME이라는 이름으로
디스크에 저장합니다.
3. :#,#w FILENAME 하면 #부터 #까지의 줄을 FILENAME이라는 파일로 저장합니다.
3. v 명령 :w FILENAME 은 비주얼 모드에서 선택된 문장들을 파일 FILENAME에 저장합니다.
4. :r FILENAME 은 디스크에서 FILENAME이라는 파일을 불러들여서 커서 위치
뒤에 현재 파일을 집어넣습니다.
5. :r !dir 는 dir 명령어의 결과값을 현재 커서의 위치 아래에 붙힙니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -624,7 +710,6 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
1. 아래에 ---> 로 표시된 줄로 커서를 옮기십시오.
2. o (소문자)를 쳐서 커서 *아래에* 줄을 하나 여십시오. 편집 모드가 됩니다.
Insert mode.
3. ---> 로 표시된 줄을 복사한 후 <ESC> 를 눌러서 편집 모드에서 나오십시오.
@ -632,10 +717,8 @@ cw 는 단어를 치환하는 것 뿐만 아니라, 내용을 삽입할 수 있
4. 커서 *위에* 줄을 하나 만드려면, 소문자 o 대신 대문자 O 를 치면 됩니다.
아래 있는 줄에 대해 이 명령을 내려보십시오.
Open up a line above this by typing Shift-O while the cursor is on this line.
---> Open up a line above this by typing O while the cursor is on this line.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -644,11 +727,15 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
** a 를 누르면 커서 *다음에* 글을 입력할 수 있습니다. **
1. 커서를 ---> 로 표시된 첫번째 줄의 끝으로 옮깁니다. 명령 모드에서
$ 를 이용하십시오.
1. 커서를 ---> 로 표시된 첫번째 줄의 끝으로 옮깁니다.
2. e 를 눌러 li 의 끝으로 커서를 옮깁니다.
2. 소문자 a 를 커서 아래 글자 *다음*에 글을 추가할 수 있습니다.
(대문자 A는 그 줄의 끝에 추가합니다.)
3. 소문자 a 를 커서 아래 글자 *다음*에 글을 추가할 수 있습니다.
4. 아랫줄과 같이 문장을 완성해 봅니다. <ESC>를 이용해 편집(Insert) 모드를 나갑니다.
5. e 를 이용해 다음 고칠 단어로 움직여 3에서 4까지를 반복합니다.
참고: 그렇게 하시면 고작 줄의 끝에 추가를 하기 위해 i를 누르고, 커서 아래에
있던 글자를 반복하고, 글을 끼워넣고, <ESC>를 눌러 명령 모드로 돌아와서,
@ -658,10 +745,10 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
3. 이제 첫 줄을 완성하십시오. 추가 명령은 텍스트가 입력되는 위치 외에는
편집 모드와 완전히 같다는 것을 유념하십시오.
---> This line will allow you to practice
---> This line will allow you to practice appending text to the end of a line.
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.
참고: a, i 그리고 A 는 텍스트가 입력되는 위치 외에는 편집 모드와 완전히 같다는 것을 유념하십시오.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.3: 치환(REPLACE) 의 다른 버전
@ -669,37 +756,56 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
** 대문자 R 을 입력하면 하나 이상의 글자를 바꿀 수 있습니다. **
1. 커서를 ---> 로 표시된 첫번째 줄로 옮기십시오.
1. ---> 로 표시된 첫번째 줄로 움직여 커서를 xxx의 앞으로 옮깁니다.
2. 커서를 ---> 로 표시된 두번째 줄과 다른 첫번째 단어 위로 옮기십시오.
('last' 입니다.)
3. R 을 입력한 후 첫번째 줄의 예전 텍스트 위에 새로운 글을 입력하여
나머지 내용이 두번째 줄과 같아지도록 바꿉시다.
---> To make the first line the same as the last on this page use the keys.
---> To make the first line the same as the second, type R and the new text.
4. <ESC> 를 눌러서 나가면, 바뀌지 않은 텍스트는 그대로 남게 됩니다.
2. R 을 입력한 후, 두번째 줄과 같은 숫자를 입력해 xxx를 치환합니다.
3. <ESC> 를 눌러 치환 모드를 빠져나갑니다. 나머지 문장은 그대로 남아 있는지 확인합니다.
4. 위 단계들 반복하여 남은 모든 xxx를 치환합니다.
---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.
주의: 치환 모드는 편집 모드와 비슷합니다. 하지만 입력된 문자들이 원래 문자들을 삭제하는 점이 다릅니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.4: 옵션 설정(SET)
Lesson 6.4: 문자 복사 붙여넣기(COPY AND PASTE)
** y 를 이용해 복사하고 p 로 붙여 넣습니다. **
1. ---> 로 표시된 줄로 움직여 커서를 "a)" 뒤로 옮깁니다.
2. v 를 눌러 비주얼 모드를 시작하고 "first" 바로 앞까지 커서를 움직입니다.
3. y 를 눌러 하이라이트 된 부분을 복사(yank (copy))합니다.
4. 커서를 다음 문장의 끝으로 옮깁니다: j$
5. p 를 눌러 문자열을 붙여 넣습니다.(paste) 그리고 second <ESC> 를 입력합니다.
6. 비주얼 모드를 이용해 " item."을 선택, y 로 복사, j$ 으로 다음 문장 끝으로 움직여
p 로 단어를 붙여 넣습니다.
---> a) this is the first item.
b)
참고: y 역시 명령어로 사용 가능합니다. 예를 들어, yw 는 한 단어를 복사합니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.5: 옵션 설정(SET)
** 찾기나 바꾸기에서 대소문자 구분을 없애기 위해 옵션을 설정합니다 **
1. 다음을 입력하여 'ignore' 를 찾으십시오:
/ignore
n 키를 이용하여 여러번 반복하십시오.
1. 다음을 입력하여 'ignore' 를 찾으십시오: /ignore <ENTER>
n 키를 이용하여 여러번 반복하십시오.
2. 'ic' (대소문자 구별 안함, Ignore case) 옵션을 설정하십시오:
:set ic
3. n 키를 눌러서 'ignore' 를 다시 찾아보십시오.
n 키를 계속 눌러서 여러번 찾으십시오.
3. n 키를 눌러서 'ignore' 를 다시 찾아보십시오.
이제 ignore과 IGNORE 모두 검색되는 점을 주목합니다.
4. 'hlsearch' 와 'incsearch' 옵션을 설정합시다.
:set hls is
@ -707,8 +813,13 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
5. 찾기 명령을 다시 입력하여, 어떤 일이 일어나는지 확인해 보십시오:
/ignore
6. 찾은 내용이 강조(HIGHLIGHT)된 것을 없애려면, 다음과 같이 입력합니다:
:nohlsearch
6. 대소문자 구별을 끄기 위해서는, 다음과 같이 입력합니다:
:set noic
참고: 찾은 내용이 강조(HIGHLIGHT)된 것을 없애려면: :nohlsearch
참고: 만약, 검색 한번에 대해서만 대소문자 구별 세팅을 끄고 싶다면 \c 를 이용할 수 있습니다.
: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 6 요약
@ -720,20 +831,22 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
2. a 를 입력하면 커서 *다음에* 글을 입력할 수 있습니다.
대문자 A 를 입력하면 자동으로 그 줄의 끝에 글자를 추가하게 됩니다.
3. 대문자 R 을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.
4. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.
3. e 를 입력하면 단어의 끝으로 움직입니다.
4. y 를 입력하면 복사(yank (copy))를, p 를 입력하면 붙여 넣기가 됩니다.
5. 대문자 R 을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.
6. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.:
'ic' 'ignorecase' 검색시 대소문자 구별을 하지 않습니다.
'is' 'incsearch' 검색어에서 부분 검색 결과를 보여줍니다.
'hls' 'hlsearch' 검색 결과값을 하이라이트해줍니다.
옵션은 전체 이름 혹은 줄인 이름 모두 사용 가능합니다.
7. 앞에 "no"를 붙여 옵션을 끌 수 있습니다: :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 7: 온라인 도움말 명령
LESSON 7.1: 온라인 도움말 명령
** 온라인 도움말 시스템 사용하기 **
@ -745,18 +858,19 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
- :help <ENTER> 라고 입력한다.
도움말 창을 닫으려면 :q <ENTER> 라고 입력하십시오.
CTRL-W CTRL-W 다른쪽 윈도우로 넘어갑니다.
:q <ENTER> 도움말 윈도우를 닫습니다.
":help" 라는 명령에 인자를 주면 어떤 주제에 관한 도움말을 찾을 수 있습니다.
다음 명령을 내려 보십시오. ( <ENTER> 키를 누르는 것을 잊지 마십시오.)
:help w
:help c_<T
:help c_CTRL-D
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LESSON 8: 시작 스크립트 만들기
LESSON 7.2: 시작 스크립트 만들기
** 빔의 기능 켜기 **
@ -764,20 +878,64 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
않습니다. 더 많은 기능을 써보려면, "vimrc" 라는 파일을 만들어야 합니다.
1. "vimrc" 파일을 수정합시다. 이 파일은 사용하는 시스템에 따라 다릅니다:
1. Start editing the "vimrc" file, this depends on your system:
:edit ~/.vimrc Unix의 경우
:edit $VIM/_vimrc MS-Windows의 경우
:e ~/.vimrc Unix의 경우
:e $VIM/_vimrc MS-Windows의 경우
2. 이제 "vimrc"의 예제를 읽어들입니다:
:read $VIMRUNTIME/vimrc_example.vim
:r $VIMRUNTIME/vimrc_example.vim
3. 다음과 같이 하여 파일을 저장합니다:
:write
:w
다음 번에 빔을 시작하면, 구문 강조(syntax highlighting)이 사용될 것입니다.
모든 원하는 설정을 이 "vimrc" 파일에 넣어둘 수 있습니다.
더 자세한 내용은 :help vimrc-intro를 참고 하세요.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7.3: 명령어 완성하기
** CTRL-D 와 <TAB> 이용하여 명령어를 완성할 수 있습니다.**
1. 먼저 vim이 호환 모드가 아닌지를 확인합니다: :set nocp
2. 디렉토리에 파일이 존재하는지 먼저 확인 합니다.: :!ls 혹은 :!dir
3. 다음과 같이 명령어를 입력합니다: :e
4. CTRL-D 를 누르면 "e"로 시작하는 모든 명령어들을 볼 수 있습니다.
5. <TAB> 을 눌러 ":edit" 명령어를 완성해 봅니다.
6. 이제 빈칸 하나를 추가한 뒤, 존재 파일 이름을 앞 부분을 입력합니다: :edit FIL
7. <TAB> 을 눌러 파일 이름을 완성 시킵니다.
참고: 완성하기는 많은 명령어에서 사용할 수 있습니다. CTRL-D와 <TAB> 만 누르세요!
특히, :help 에서 유용할 것입니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7 요약
1. 도움말을 열기 위해 :help 혹은 <F1> 혹은 <Help> 를 누릅니다.
2. cmd 에 대한 도움말을 보기 위해서는 :help cmd 를 입력합니다.
3. CTRL-W CTRL-W 를 이용해 다른 윈도우로 넘어갑니다.
4. :q 로 도움말 윈도우를 빠져나옵니다.
5. vimrc 시작 스크립트를 이용해 선호하는 세팅을 유지할 수 있습니다.
6. : 명령어를 입력할때, CTRL-D 를 눌러 가능한 명령어들을 볼수 있습니다.
<TAB> 을 눌러 완성 가능합니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -807,6 +965,4 @@ Open up a line above this by typing Shift-O while the cursor is on this line.
Modified for Vim by Bram Moolenaar.
이 문서의 한국어 버전에 관한 문의는 다음 사이트로 해주십시오.
http://wiki.kldp.org/wiki.php/VimTutorKo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~