cc ๋ ํ์ฌ ํ์ ์ญ์ ํ๊ณ ์ปค์๋ฅผ ์ฝ์ ๋ชจ๋์ ๋ก๋๋ค ( 'autoindent'์ต์ ์ด ์์น๋ฅผ ๊ฒฐ์ ํฉ๋๋ค).
VsVim์ ํญ์ ์ปค์๋ฅผ ์ฌ๋ฐ๋ฅธ ์์น์ ๋์ง๋ ์์ต๋๋ค. ๋ด๊ฐ ์ผ๊ด๋๊ฒ ์ฌํ ํ ์ ์์๋ ํ ๊ฐ์ง ๊ฒฝ์ฐ๋ ๋น ์ค์ cc๋ฅผ ๋ฃ์ผ๋ฉด ๋ค์ฌ ์ฐ๊ธฐ๊ฐ ์๋ ์ฒซ ๋ฒ์งธ ์ด์ ์ปค์๋ฅผ ๋์ ๊ฒ์
๋๋ค.
๋ค์ ์์ C # ์ฝ๋๋ฅผ ๊ณ ๋ คํ์ญ์์ค ([]๋ ncursor, | icursor).
class Foo {
public void Bar()
[{]
}
}
o
์ (๋ฅผ) ๋๋ฌ ์๋ ์ค์ ์ฝ๋ ๋ค.
class Foo {
public void Bar()
{
|
}
}
์ด์ Esc
๋๋ฅด๊ธฐ :
class Foo {
public void Bar()
{
[ ]
}
}
์ด์ cc
๋๋ฅด์ญ์์ค. ์ด๊ฒ์ด Vim๊ณผ VsVim์ด ๋ค๋ฅธ ๋ถ๋ถ์
๋๋ค. Vim์ ์ปค์๋ฅผ Bar ์์ ๋ค์ฌ ์ฐ๊ธฐํฉ๋๋ค.
class Foo {
public void Bar()
{
|
}
}
VsVim์์ด๋ฅผ 0 ํ์ ๋ฐฐ์นํฉ๋๋ค.
class Foo {
public void Bar()
{
|
}
}
๋๋ ๋ค์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ญ์์ค.
class Foo {
public void Bar()
{
throw new NotImplementedException()[;]
}
}
Vim๊ณผ VsVim ๋ชจ๋์์ ๋จ์ผ cc
๋ ์ปค์๋ฅผ ๋ค์ฌ ์ฐ๊ธฐ ์์น์ ๋ฐฐ์นํ์ง๋ง cc<Esc>cc
๋ ์ปค์๋ฅผ VsVim์ ์ด 0์ ๋ฐฐ์นํฉ๋๋ค (Vim์ ์ค๋ฅธ์ชฝ ๋ค์ฌ ์ฐ๊ธฐ์ ๋ฐฐ์น).
VsVim์์ ๋ณด๋ ๋์์ gVim์์ ๋ณด๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
๋ค๋ฅธ ์ค์ ์ด ํ ๊ธ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ค์ ๋ก ์๋จ์ 'o'๋จ๊ณ ํ์ ํ๋ ์ฐจ์ด๋ฅผ ๋ด
๋๋ค. ๋ด ์ปค์๋ {
์ ๊ฐ์ ์ด์ ๋ํ๋๋ฉฐ ๊ทํ์ ์ปค์์ฒ๋ผ ๋ค์ฌ ์ฐ๊ธฐ๋์ง ์์ต๋๋ค.
:set
๋ฅผ ์คํํ๊ณ ์ถ๋ ฅ์ ๋ถ์ฌ ๋ฃ์ ์ ์์ต๋๊น?
autoindent
๋ ๋ด vimrc์์ ์ค์ ํ ์ต์
์ค ํ๋ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ vsvimrc์์ source
์ ์ค์ ํ์ต๋๋ค.
ignorecase
incsearch
scrolloff=5
smartcase
vimrc="C:\Users\pmateescu\_vsvimrc"
vimrcpaths="C:\Users\pmateescu;C:\Users\pmateescu"
autoindent
number
tabstop=4
VsVim์ VS์ ๋ค์ฌ ์ฐ๊ธฐ ์ค์ ์ ๊ณ ๋ คํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ค์์ ๋ด ์ต์ ์ ๋๋ค (์ต์ -> ํ ์คํธ ํธ์ง๊ธฐ-> C #-> ์์).
class MyClass
{
public void Method()
{
goto MyLabel;
MyLabel:
return;
}
}
์ด๊ฒ์ด ์ค์ํ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ค์ฌ ์ฐ๊ธฐ๋ฅผ ์ค๋งํธ, ํฌ๊ธฐ 4, ํญ ์ ์ง๋ก ์ค์ ํ์ต๋๋ค.
HTH
๋ค, ์๋ ๋ค์ฌ ์ฐ๊ธฐ๊ฐ ์ฐจ์ด ์ธ ๊ฒ ๊ฐ์ต๋๋ค. +๋ฅผ ์ค์ ํ๋ฉด .c ํ์ผ๋ก ์ ์ฅํ๋ฉด ๋ณด์๋ ๋์์ ์ป์ ์ ์์ต๋๋ค.
์ฝ๋๋ฅผ ํ์ด ๋ณด์๋๋ฐ ๋น ์ค์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฝ๋๋ ์ญ์ ๋ ์ค์ด ๋น์ด์์ ๋ autoindent
์กด์คํ์ง ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก VsVim์ Vim ๋ค์ฌ ์ฐ๊ธฐ๋ณด๋ค Visual Studio ๋ค์ฌ ์ฐ๊ธฐ๋ฅผ ์ ํธํฉ๋๋ค. vsvim_useeditorindent
์ต์
์ ๋นํ์ฑํํ์ฌ ๋ฌด์ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋๋ถ๋ถ ์ ์๋ํฉ๋๋ค. ๋ถํํ๋ 2010 ๋ ์๋ ๋ชจ๋ ์ธ์ด๊ฐ ๋ค์ฌ ์ฐ๊ธฐ ์๋น์ค๋ฅผ์ํ ์ข์ API๋ฅผ ์ ๊ณตํ์ง๋ ์์ต๋๋ค. C #์ ์ต๊ณ ์ด๊ณ , VB๋ ๊ฑฐ์ ์์ต๋๋ค. C ++๋ ์ฃผ์ฌ์์ ๊ตด๋ฆผ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด VS11์์ ๋ ๋์ ์ก๋ค๊ณ ์๊ฐํ์ง๋ง ์์ง ์ผ๋ง๋ ๋ง์์ง ๋ณผ๋งํผ ์ถฉ๋ถํ ๋์ง ์์์ต๋๋ค.
์ด ์์ ์ฌํญ์ 1.3์ผ๋ก ์์ถํ๋ ค๊ณ ํฉ๋๋ค.
์ด ๋์์ ์ค์ ๋ก autoindent
์๋๋ผ cindent
ํค๊ฐ ์ค์ ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋ฐ ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฐ ์ด์ ์ค ํ๋์
๋๋ค. autoindent
์ฌ์ฉํ๋๋ก ์ค์ ํ ํ
์คํธ ํ์ผ์ ์คํํ๊ณ ์์์ต๋๋ค. ์ด๊ฒ์ cindent
์ค์ ๋ C ํ์ผ์์๋ง ์ฌํ๋ฉ๋๋ค.
๋น์ ๋ง์ด ๋ง์์, ๋น์ ์ด vim -U NONE -u NONE -cmd 'set cindent' index.cs
์ ํจ๊ป ์ธ๊ธ ํ ํ ์ ๋ ๊ทธ๊ฒ์ ์ฌํํ์ต๋๋ค.
์ผ๋ฐ ์ค์ ์์ Vim์ C์ ์ ์ฌํ ํ์ผ์์ cindent
๋ฅผ ์๋์ผ๋ก ์ค์ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค (C # ๋ฐ JS์์ :setl
์ ํ์๋จ).
๊ทธ๋ฌ๋, ๊ฐ์ ๋์ -์ ์ ๊ฑฐ ๋ค์ฌ ์ฐ๊ธฐ <Esc>
์ ๋ค์ ๋ค์ฌ ์ฐ๊ธฐ cc
- ๋น์ ์ผ์ด๋ ๊ฒ cindent
ํ์ผ : ๋ชจ๋ CSS์์ ๋๋ฅผ ์ํด ๋ํ๋์ HTML, ๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ๊ฒฝ์ฐ์๋ ํน์ indentexpr
์ ํจ๊ณผ ์ผ ์ ์์ต๋๋ค.
๋ฟก๋ฟก
๋ฟก๋ฟก
์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ ๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๋ฌ์ต๋๋ค.
์ต์ ๋ฆด๋ฆฌ์ค์์ ์์ ๋์์ต๋๊น?
:set
์ดํ ์ถ๋ ฅ
backspace="indent,eol,start"
hlsearch
ignorecase
incsearch
autoindent
@lookforit ํ์ฌ๋ ์์ต๋๋ค. ์ด ๋์์ ์ค์ ๋ก ํ์ฌ VsVim์์ ์ง์ํ์ง ์๋ cindent
์ ์ผ๋ถ์
๋๋ค.
์ด ๊ฐ๋จํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ vim์์ ๊ธฐ๋ํ๋ ๋์์ ์ ๊ณตํฉ๋๋ค.
nmap S ddO
nmap cc S
์ด๊ฒ์ ์ฌ์ ํ โโ๊ฐ์ง๊ณ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ๋ด ์ง๊ด์ ์ธ ๊ฐ๊ฐ์ ์ค์ ์ง์ฐ๊ณ ํธ์ง์ ์์ํ๋ 'cc'๋ ์ค ๋ฐ๊ฟ์ ๋ง๋๋ ๊ฒ๊ณผ ๋์ผํ ๋ค์ฌ ์ฐ๊ธฐ ์์ค์์ ์์ํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๊ฒํด์๋ ์๋๋ค๋ ๋ด๋ถ Vim / VS ์ถ๋ก ์ด ์์ต๋๊น? ํ๋ก์ ํธ ์์ ์ ๋ค์ด๊ฐ๋ ๊ธธ๋ก ๋ค๋ฃฐ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ
์ ํ๋ฉด์ ์ผ๋ก " o
๊ฐ ์ด๋ฏธํ๊ณ ์๋ ์ผ์ cc
์ํดํ๋ ๊ฒ"(์ด๊ฒ์ด @shkm ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ํ๋ ์ด์ ์
๋๋ค) ์ด์์ง๋ง ํ์ํ ์์ ๋ก ์ธํด ์กฐ๊ธ ๋ ์์
ํ์ญ์์ค.
VsVim์ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์ด ์๋น์ค๊ฐ ์์ ๋ VsVim์ด ์ฌ์ฉํ๋ ๋ค์ฌ ์ฐ๊ธฐ ์ ํ ์ธ "vim indent"์ ๋ํด ์ฌ๋ฐ๋ฅธ ์์ ์ ์ํํ๊ณ ์์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ํ ์คํธ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ํ ์คํธ์ ์ธํ๋ผ๋ฅผ ์ถ๊ฐํ์ฌ ์ธ์ด ์๋น์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํด์ผํ์ต๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์กด ํ ์คํธ๋ ๋ชจ๋ "vim indent"๋ฅผ ์ฌ์ฉํ์ง๋ง 99 %์ ์ฌ์ฉ์๋ "host indent"๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ฆ, Visual Studio์์ ๋ค์ฌ ์ฐ๊ธฐ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ์ผ์ ํธ์งํ๊ณ ์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ๋์ฑ ๋ณต์กํ๊ฒํ๊ธฐ ์ํด, ํญ์ด ํ์ฅ๋์ง ์์ ๋ ์ ๋๋ก ์๋ํ์ง ์๋ "vim indent"๋ฅผ๋ณด๊ณ ํ ์ฌ๋์ด ์๋ฌด๋์๋ ๋ฒ๊ทธ๊ฐ์์์ต๋๋ค (๋ฌธ์ # 2302 ์ฐธ์กฐ). ๋ค์ ๋งํ์ง๋ง, ์ค์ฉ์ ์ธ ๊ด์ ์์ ๋ณผ ๋ ์๋ฌด๋ "vim indent"๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ ํ ๋ ์ด๊ฒ์ ๊ทธ๋ฆฌ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๊ฐ๋จํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ vim์์ ๊ธฐ๋ํ๋ ๋์์ ์ ๊ณตํฉ๋๋ค.