|
DB/MySQL 2010. 4. 27. 09:54
int mysql_result(int result, int row, mixed field)
결과 레코드 세트에서 하나의 필드값을 얻는다.
mysql_result() 함수 역시 결과 레코드 세트에서 필드값을 가져오는 역할을 한다. mysql_fetch_row(), mysql_fetch_object(), mysql_fetch_array() 함수가 결과 레코드 세트에서 배열이나 객체의 형태로 하나의 레코드가 가진 모든 필드값을 한꺼번에 가져오는데
반해 mysql_result() 함수는 한번 호출할 때 레코드가 가진 여러 필드 중에서 하나의 필드값만을 반환한다. 따라서 쿼리 결과 검색되어진 레코드 세트의 크기가 큰 경우에는 mysql_result() 함수보다는 mysql_fetch_row(), _array(), _object() 함수를 사용하는 것이 휠씬 빠른 결과를 보여준다.
* mysql_result($result, 0, 1) == mysql_result($result, 0, "id") ==> guncat 출력
따라서 mysql_result() 함수를 이용하여 각각 이들 셀의 값에 접근하려면 모두 12번의 호출이 필요한 셈이다. 그러므로 결과 레코드가
커질 수록 mysql_fetch_row(), _object() 함수를 이용하는 것이 속도 면에서 휠씬 유리하다
ex)
<html>
<head>
<style type="text/css">
<!--
BODY, TR, TH, TD {
font-size : 10pt;
}
//-->
</style>
</head>
<body>
<?
$dbconn = mysql_connect("localhost","php","php99") || die("DB서버 연결에 실패하였습니다!");
$status = mysql_select_db("sample",$dbconn);
if(!$status) {
$errNO = mysql_errno($dbconn);
$errMSG = mysql_error($dbconn);
echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");
echo("에러코드 $errNO : $errMSG<br>");
exit;
}
$query = "SELECT name,id,email,sex,milage,level FROM userdb WHERE milage >= 3000 ORDER BY milage DESC";
$result = mysql_query($query,$dbconn);
if(!$result) {
$errNO = mysql_errno($dbconn);
$errMSG = mysql_error($dbconn);
echo("에러코드 $errNO : $errMSG<br>");
exit;
}
$rows = mysql_num_rows($result);
$fields = mysql_num_fields($result);
echo("<table width=600 border=0 cellpadding=10>\n");
echo("<tr>\n");
for($j = 0; $j < $fields; $j++) {
$name = mysql_field_name($result,$j);
echo("<td bgColor=pink align=center>$name</td>\n");
}
echo("</tr>\n");
echo("<tr>\n");
for($i = 0; $i < $rows; $i++) {
for($j = 0; $j < $fields; $j++) {
$value = mysql_result($result,$i,$j);
echo("<td bgColor=lightyellow align=center>$value</td>\n");
}
echo("</tr>");
}
echo("</tr>\n");
echo("</table>");
mysql_close($dbconn);
?>
</body>
</html>
[추가]
속도면에서...
mysql_fetch_row() -> mysql_fetch_array() -> mysql_result()
앞쪽에 있는 것이 재일 빠르답니다.
그럼 질문에 소스를 수정해 보면...
$new_id = mysql_fetch_row(mysql_query("select max(id) from board"));
$dbresult=mysql_query("update board set id_num=$new_id[0] where id=$new_id[0]");
이렇게 사용하시면 되겠습니다.
참고)
mysql_fetch_row() : query 결과 값 접근시 번호로써 접근함.
예) $rows[0], $rows[1].....
mysql_fetch_array() : query 결과 값 접근시 번호 또는 필드명 으로 접근함.
예) $rows[0], $rows[1]... 또는 $rows[no], $rows[name]...
mysql_result() : 결과 값 접근시 row 와 field 번호로 접근합니다.
예) 사용법 : mysql_result($result, row, field);
$result = mysql_query("select no,name from test order by no");
[ 예제결과값 ]
field 0 field 1
▼ ▼
+-----------------+
| no | name |
+-----------------+
| 1 | test1 | <- row 0
| 2 | test2 | <- row 1
+-----------------+
mysql_result($result,0,0); // 1
mysql_result($result,0,1); // test1
mysql_result($result,1,0); // 2
mysql_result($result,1,1); // test2
Language/PHP 2010. 4. 27. 09:39
◆ 배열
변수는 기본적으로 1 개의 값만 할당할 수없습니다. 그러나 프로그램을 개발해 나가는 가운데 여러 값을 가진 변수가 필요하게되어있습니다.
다른 언어에서도 보이는 것과 같이, PHP 1 개의 변수에 여러 개의 값을 가질 수있습니다. 그것을 "배열"이라고합니다.
■ 배열 array
JavaScript나 Perl 언어에서 볼 수있는 배열과 마찬가지로, PHP 배열을 설정할 수있습니다.
예를 들면 가장 간단한 배열 방법은
<?php
$fruit[] = "APPLE";
$fruit[] = "ORANGE";
$fruit[] = "GRAPE";
?>
이와 같이 [ ] 설정하면, $fruit[0] 「APPLE」 문자열이 입력되며 $fruit[1] 「ORANGE」 할당됩니다.
이러한 배열하는 방법이기도 하지만, 배열해야 값이 많다면 작성하는 것도 어려워집니다.
(배열 인덱스의 시작은 항상 "0"입니다.)
■ array() 함수
다중 값 (인덱스)를 1 개의 변수에 저장하려면, array() 함수를 사용하면 손쉽게 배열을 설정할 수있습니다.
<?php
$fruit = array("APPLE", "ORANGE", "GRAPE", "STRAWBERRY", "BANANA");
?>
이렇게하면 임의의 값을 가질 수있습니다. 예를 들면, 「ORANGE」 값을 원하는 경우에는 $fruit[1] 라고 하면 됩니다.
<?php
$fruit = array("APPLE", "ORANGE", "GRAPE", "STRAWBERRY", "BANANA");
print($fruit[1]);
?>
스크립트 실행 결과는 다음과 같습니다.
배열 중에서 1 개만 값을 검색 표시하고있습니다.
배열은 얼마든지 어떠한 형태이든 담을 수 있어 스크립트를 단순화합니다. 배열된 값은 필요할 때 필요한 분을 분리하여 계산이나 다른 스크립트에 응용할 수있습니다.
■ explode() 함수
인덱스 구분 기호를 기준으로 배열하는 것이 explode() 함수입니다. 이것은 인덱스 문자열의 각 항목으로 변수에 저장됩니다.
<?php
$fruit = explode(",", "APPLE,ORANGE,GRAPE,STRAWBERRY,BANANA");
print($fruit[3]);
?>
예제 코드를 보면 알다시피 인덱스 문자열을 쉼표로 구분되며, 그 구분 기호를 선두로 지정합니다. 이렇게해서, 1 개의 문자열로 인덱스를 원하는만큼 설정할 수 있습니다.
스크립트 실행 결과는 다음과 같습니다.
expode() 함수에서 지정한 값 4 번째 인덱스를 빼내 표시하고 있는 샘플입니다.
일반적으로, array() 함수를 사용하는 경우가 많습니다만, expode() 함수를 편리하게 사용할 수 있습니다. 게다가 구분 기호는 임의로 지정할 수 있습니다.
■ 연상 배열
여기까지 문자열을 중심으로 배열에 대해 설명했습니다. 인덱스가 문자열 배열의 경우를 연상배열이라고 합니다. 물론 배열에는 숫자도 가능합니다.
연관 배열은 인덱스에 문자열을 할당하고 있기 때문에, 루프를 사용하는 경우 일반 배열과 같이 첨자를 사용하여 해당 값을 참조할 수 없습니다.
따라서 list()와 each() 함수를 사용하여 동일하게 작동할 수 있습니다.
<?php
$fruit = array("Apple" => "사과", "Orange" => "오렌지", "Grape" => "포도");
while(list ($key, $val) = each($fruit)) {
print ( "인덱스 $ key에는 $ val입니다 <br> \ n");
} )
?>
이 스크립트는 each() 함수를 사용하여 연관 배열 $fruit 값을 하위 배열로 반환합니다.
list() 함수는 변수 $key $val 출력값을 할당합니다. 여기서 Key는 =>를 사용합니다.
OS/리눅스 & 유닉스 2010. 4. 22. 17:12
커서의 위치를 움직이는 명령(Move commands)
N에 *가 있는 경우 숫자를 사용할 수 있고, -의 경우 사용할 수 없다.
N |
명령어 |
기능 |
* |
h or ^H or <erase>
| 커서를 한칸(N칸) 왼쪽으로 이동시킨다. |
* |
j
| 커서를 한행(N행) 아래로 이동시킨다. |
* |
l or <sp>
| 커서를 한칸(N칸) 오른쪽으로 이동시킨다. |
* |
k or ^P
| 커서를 한행(N행) 위로 이동시킨다. |
* |
$
| 커서가 위치한 행(N번째 행)의 끝으로 이동한다. |
- |
^
| 커서가 위치한 행의 처음으로 이동한다. |
* |
+ or <enter>
| 다음행(N행 아래)의 처음으로 이동한다. |
- |
0
| 커서가 위치한 행의 처음으로 이동한다. |
* |
|
| N번째 column으로 이동한다. |
* |
f<char>
| 오른쪽으로 N번째 char를 찾는다. |
* |
F<char>
| 왼쪽으로 N번째 char를 찾는다. |
* |
w
| 커서부터 오른쪽 N번째 단어의 첫부분. |
* |
W
| 커서부터 오른쪽 N번째 WORD(tab,space,linefeed 뒤에 있는 단어)의 첫부분. |
* |
b
| 커서부터 왼쪽 N번째 단어의 첫부분. |
* |
B
| 커서부터 왼쪽 N번째 WORD의 첫부분. |
* |
e
| 커서부터 오른쪽 N번째 단어의 끝부분. |
* |
E
| 커서부터 오른쪽 N번째 WORD의 끝부분. |
* |
G
| 커서부터 N번째 라인으로.(default 화일의 끝). |
* |
H
| Screen의 위에서부터 N번째 라인으로. |
* |
L
| Screen의 아래에서부터 N번째 라인으로. |
- |
M
| Screen의 중간으로. |
* |
)
| N개의 문장 뒤로. |
* |
(
| N개의 문장 앞으로. |
* |
}
| N개의 paragraphs 뒤로. |
* |
{
| N개의 paragraphs 앞으로. |
- |
]]
| 뒤의 N번째 section으로(default 화일의 끝). |
- |
[[
| 앞의 N번째 section (default 화일의 처음). |
- |
`<a-z>
| Mark한 곳으로. |
- |
'<a-z>
| Mark가 있는 라인의 첫번째 CHAR로. |
-
| ``
| 가장 최근의 jump(예를 들어 `/'나 `G'를 사용한 jump)를 하기 직전의 위치로. |
-
| ''
| 가장 최근의 jump(예를 들어 `/'나 `G'를 사용한 jump)를 하기 직전의 라인의 첫 CHAR로. |
-
| /<문자열>
| 다음으로 <문자열>이 나오는 위치로. |
-
| ?<문자열>
| /를 반대방향으로 수행. |
-
| n
| 가장 최근의 `/'|`?' 를 반복한다. |
-
| N
| n을 반대방향으로의 수행. |
-
| %
| Braket( { } or [ ] or ( ) )을 찾고 그것의 match를(괄호가 닫힌 쌍)찾는다. |
찾기(Searching)
/<문자열>
| 다음으로 <문자열>이 나오는 위치로. |
?<문자열>
| /를 반대방향으로 수행. |
:[x,y]g/<문자열>/<명령어> |
x에서 y까지 <문자열>을 찾고(globally) <명령어>를 실행한다. |
:[x,y]v/<문자열>/<명령어> |
x에서 y까지 문자열과 match되지 않는 라인에 <명령어>를 실행한다. |
취소(Undoing changes)
u |
가장 최근에 한 작업을 취소한다. |
U |
만약 작업을 한 라인에서 벗어나지 않았다면, 그 라인에서 한 작업들을 모두 취소한다. |
:q! |
Save하지 않고 vi를 끝낸다. |
:e! |
현재 편집중인 화일을 버리고 다시 편집한다. |
문자열 삽입(Appending text)
1. <esc>를 누르면 삽입 작업이 끝난다.
2. N에 *가 있는 경우 숫자를 사용할 수 있고, -의 경우 사용할 수 없다.
* |
a
| 커서의 오른쪽에 쓰기 시작한다. |
* |
A
| 커서가 위치한 라인의 맨 끝에 쓰기 시작한다. |
* |
i
| 커서의 위치부터 쓰기 시작한다. |
* |
I
| 커서가 위치한 라인의 맨 처음부터 쓰기 시작한다. |
* |
o
| 커서가 위치한 라인 밑에 새로운 라인을 만들고 거기에 쓰기 시작한다. |
* |
O
| 커서가 위치한 라인 위에 새로운 라인을 만들고 거기에 쓰기 시작한다. |
* |
.
| 앞에 실행했던 명령을 N번 반복한다. |
문자열 삭제(Deleting text)
지운 것은 모두 buffer에 저장할 수 있다. 일단 지우는 명령을 실행하기 전에 "를 치고 a-z 중간의 한 문자를 치면 지운 것이 그 문자에 해당하는 buffer에 저장되게 된다. 참고로 Undo buffer는 가장 최근에 바꾼 것만 저장하게 되고, 1-9에 해당하는 buffer는 가장 최근의 9라인을 지운 것을 저장하게 된다.
* |
x |
커서 오른쪽의 N개의 문자를 지운다. |
* |
X |
커서 왼쪽의 N개의 문자를 지운다. |
* |
d<move> |
커서가 위치한 곳에서부터 <move>로 인해 움직인 위치까지 지운다. |
* |
dd |
커서의 위치로부터 밑으로 N개의 라인을 지운다. |
- |
D |
커서의 위치로부터 오른쪽의 문자를 모두 지운다. |
* |
. |
최근에 실행했던 명령을 N번 반복한다. |
문자열 수정(Changing text)
<esc>를 누르면 바꾸는 작업이 끝난다.
* |
r<char> |
커서의 위치로부터 N개의 문자를 <char>로 바꾼다. |
* |
R |
라인의 나머지를 덮어쓴다. |
* |
s |
N개의 문자를 교체한다. |
* |
S |
N개의 라인을 교체한다. |
* |
c<move> |
커서의 위치로부터 <move>의 위치까지 바꾼다. 예를 들어 cw는 한 단어를 바꾸는 명령이다. |
* |
cc |
N개의 라인을 바꾼다. |
* |
C |
라인의 나머지 부분을 바꾼다. |
- |
~ |
대문자와 소문자를 각각 소문자와 대문자로 바꾼다. |
* |
J |
N개의 라인을 연결한다. |
* |
. |
가장 최근의 명령을 N번 반복한다. |
- |
& |
가장 최근의 `ex'의 교체명령을 반복한다. |
- |
:[x,y]s/<p>/<r>/<f> |
x번째 라인에서 y번째 라인까지 <p>의 문자열을 <r>이라는 문자열로 교체한다. <f>는 여러가지 옵션인데, c는 확인을 요하는 옵션이고 g는 무조건 교체하라는 옵션이다. |
문자열 기억(yanking)
Yanking하기 전에 a-z, A-Z 까지의 문자중 하나를 친 후 yanking하는 경우 기억된 문자열이 각 문자에 해당하는 buffer에 저장된다. 그렇지 않은 경우 단순히 undo를 위한 buffer에 저장된다.
* |
y<move> |
커서의 위치로부터 <*><move>후 움직인 위치까지 저장한다. |
* |
yy |
N개의 라인을 저장한다. |
* |
Y |
yy와 같은 역할. |
- |
m<a-z> |
커서의 위치를 문자로 마크한다. |
저장, 다른 화일의 편집, vi를 끝내기.
:q |
Buffer가 변하지 않은 경우 vi를 끝낸다. |
:q! |
강제로 vi를 종료한다. |
^Z |
vi를 종료한다. |
:w |
화일에 저장한다. |
:w <화일명> |
<화일명>으로 저장한다. |
:w >> <화일명> |
Buffer의 내용을 <화일명>에 붙인다. |
:w! <화일명> |
편집하고 있는 화일을 <화일명>에 강제로 저장한다. |
:x,y w <화일명> |
x부터 y번째 라인의 내용을 <name>에 저장한다. |
:wq |
화일에 저장하고 vi를 끝낸다. 어떤 version에서는 저장이 제대로 되지 않는 경우도 있으므로 그 경우는 ZZ를 사용하면 된다. |
ZZ |
Buffer의 내용이 변한 경우 화일에 저장하고 vi를 끝낸다. |
:x [<file>] |
ZZ와 같지만, <file>에 저장하고 끝낸다. |
:x! [<file>] |
`:w![<file>]' + `:q'. |
:f <화일명> |
현재 편집하고 있는 화일명을 <화일명>으로 바꾼다. |
:cd [<dir>] |
현재 작업하고 있는 디렉토리에서 <dir>로 바꾼다. (default는 홈 디렉토리이다.) |
:cd! [<dir>] |
cd와 같지만, 변화를 저장하지 않는다. |
:e<화일명> |
<화일명>으로 지정한 화일을 편집한다. |
:e!<화일명> |
현재 편집중인 변경된 화일을 버리고 <화일명>으로 지정한 화일을 편집한다. |
:rew |
최초의 화일로 돌아간다. |
:rew! |
현재 편집중인 변경된 화일을 버리고 최초의 화일로 돌아간다. |
:n [<files>] |
다음의 화일을 편집한다. |
:n! [<files>] |
현재 편집중인 변경된 화일을 버리고 다음의 화일을 편집한다.iting the current buffer. |
Display 명령어
^G |
화일명, 현재 라인의 위치, 전체 화일에 대한 상대적인 위치 등을 나타낸다. |
^L |
스크린을 새롭게 한다.(refresh) |
[*]^E |
커서는 자기 자리에 그대로 있고(화면의 바깥으로 나가지 않는 이상) 화면 전체가 밑에서 N라인 위로 이동한다. |
[*]^Y |
커서는 자기 자리에 그대로 있고 화면 전체가 위에서 N라인 밑으로 내려온다. |
[*]^D |
N라인 밑으로 scroll한다.(default: page의 반) |
[*]^U |
N라인 위로 scroll한다.(default : page의 반) |
[*]^F |
N 페이지 밑으로 간다. |
[*]^B |
N 페이지 위로 간다. |
명령어와 문자열의 간단한 지정.(Mapping and abbreviation)
:map <생략형> <문자형> |
<생략형>에 해당하는 문자(키보드의 키)에 대해 <문자형>에 해당하는 기능으로 변경한다. 예를 들어 :map V 'ap 라고 쓴다면 앞으로 명령모드에서 P라고 칠때마다 a에 해당하는 buffer를 붙이게 된다.(paste) 한가지 중요한 점은 만약 기존의 명령을 mapping하는 경우 기존의 명령보다 mapping한 것을 우선으로 취급하게 되므로 주의해야 한다. |
:map |
모든 mapping을 보여준다. |
:unmap <문자열> |
문자열에 해당하는 mapping을 취소한다. |
:map! <생략형> <문자형> |
Append 모드에서 <생략>을 입력하면 무조건 <문자형>으로 치환된다. |
:map! |
모든 append 모드에서의 mapping을 보여준다. |
:unmap! <string> |
Deprive <string> of its mapping (see `:unmap'). |
:ab <생략형> <문자형> |
Append 모드에서 <생략형>을 입력한 후 ESC나 space, return키를 입력하면 <문자형>으로 전개된다. |
:ab |
모든 생략형을 보여준다. |
:unab <string> |
생략형을 취소한다. |
다른 명령계통으로의 전환 및 shell 명령어의 사용.
(Switch and shell commands)
Q |
vi에서 ex 명령으로 전환한다. |
: |
ex명령어를 vi상에서 사용할 수 있게 한다. |
:vi |
ex 에서 vi로 전환한다. |
:sh |
잠시 shell환경으로 나간다. 다시 vi로 돌아오려면 exit를 치면 된다. |
:[x,y]!<명령어> |
x에서 y까지의 라인을 input으로 해서 shell의 <cmd>를 수행하여 그 output으로 대체한다. |
:[x,y]!! [<args>] |
가장 최근의 shell명령어를 수행하고 <args>를 붙인다. |
[*]!<move><cmd> |
<move>까지의 라인을 input으로 하여 shell의 <cmd>를 수행하고 그 output으로 대체한다. |
[*]!<move>!<args> |
<args>를 가장 최근의 <cmd> and execute it, using the lines described by the current <*><move>. |
[*]!!<cmd> |
N 라인을 shell의 <cmd>명령어의 input으로 하여 그 output으로 그 라인들을 대체한다. |
:x,y w !<cmd> |
x에서 y까지의 라인을 <cmd>의 input으로 한다. (w와 !사이에 space가 있는것에 주의.) |
:r!<cmd> |
<cmd>의 output을 새로운 라인에 붙인다. |
:r <화일명> |
<화일명>의 화일을 buffer에서 읽어들인다. |
vi를 시작할 때.(option)
vi [<files>] |
file의 첫 페이지에서부터 edit하기 시작한다. |
앞서 설명했던 `:set'이나 `:map', `:ab' 등의 설정은 일단 vi를 종료하면 없어진다. 만약 이 설정이 매회 사용하는 것이라면 vi를 가동할 때 마다 이들 명령어를 입력하지 않으면 안된다. vi는 이들 설정을 홈 디렉토리의 `.exrc'라는 화일에 기술해 놓으면 가동시에 자동적으로 `.exrc'를 참조하여 set이나 map, ab등을 설정해 준다. .exrc에는 :이 필요없다. 다음의 예를 살펴보자. set ai aw nu 자동 인덴트, 자동쓰기, 행 번호의 지정. set ts=4 탭 정지를 4로 지정. map! PO POSTECH PO라고 입력하면 자동적으로 POSTECH으로 변환.
이런 식으로 .exrc 화일을 만들면 된다. 만약 .exrc가 아닌 새로운 설정화일을 사용하려면, vi를 실행시킨 상태에서 :so file
이라고 쓰면 된다. 간단한 설정의 경우라면 `vi +<cmd> file', 의 형태로 vi를 시작할 수 있다.
vi +x file
커서가 x번째 라인으로 위치한 상태에서 vi가 시작된다.
vi +/<문자열> file
<문자열>이 처음 나타나는 위치에서 vi가 시작된다.
vi -t <tag>
지정한 tag를 사용하여 vi가 시작된다.
가끔씩 시스템의 에러로 vi가 비정상적으로 종료할 경우가 있는데, 이때에는 `vi -r file'의 명령을 사용하여 잃어버린 데이타를 찾을 수 있다. 그냥 `vi -r'을 치면 복구할 수 있는 화일의 리스트가 나타난다. 그리고 text를 단순히 보기만 할 경우(no change) `view'를 사용하거나 `vi -R'을 사용해서 text를 볼 수 있다.
중요한 옵션들(The most important options)
ai |
autoindent - Indent(단락구분)을 한다. 되돌가갈 때는 <Ctrl>+<d> |
aw |
autowrite - 자동적으로 화일을 쓰기 시작한다. |
dir=<string> |
directory - 임시 화일을 만들 디렉토리.(default /tmp) |
eb |
errorbells - 실수를 한 경우 Beeps 음을 울린다.(모든 터미날에서 되는 것은 아니다. |
handtabs |
vi의 단말 탭수를 설정한다. |
ic |
ignorecase - 정규표현에서 대문자, 소문자의 구별을 하지 않는다. |
list |
탭(<lf>), 행말(`$')을 표시한다. |
mesg |
vi가 발생하는 이외의 메시지도 화면에 표시한다. |
nu |
number - 행 번호를 표시한다. |
readonly |
편집 화일을 write 금지 상테에서 read한다. 예외로서, `w!'를 실행했을 경우는 강제적으로 write된다. |
redraw |
편집에서의 삭제, 삽입시에 적극적으로 화면을 재표시한다. noredraw(초기설정값)일 때에 삭제, 삽입을 하면 공백분은 @표 표시되며 재표시되지 않는다. redreaw로 설정할 때는 통신 속도가 빠른 상태가 아니면 재표시를 하기 위하여 반응이 둔해지므로 주의해야 한다. |
remap |
:map으로 치환된 문자/명령어를 :map에서 다시 다른 문자/명령어로 등록하는 것을 허가한다. |
report |
변경/삭제/대피에 의해 영향받았던 행수가 지정차를 초과하였을 경우, 화면 한단에 그 행수를 표시한다. |
showmatch |
대응하는 괄호끼리 커서를 뛰어넘는 `match 기능'을 ON으로 한다. |
showmode |
화면 우측 아래에 현재의 vi mode를 표시한다. |
terse |
에러 메시지를 약식 표시로 한다. |
warm |
편집에서 변경한 내용을 기록하지 않은 상태에서 `:!'로 시작되는 명령을 실행하였을 때에 `NO write since last change'라는 경고 메시지를 표시하도록 한다. |
wrapscan |
커서 위치에 관계 없이 버퍼 내 모두를 문자열 검색 대상으로 한다. now로 하였을 경우 문자열 검색은 현재의 커서 위치에서 최후의 문자까지 종료한다. |
writeany |
편집한 내용을 화일에 기록할 때의 vi에 의한 안전 체크를 해제한다. |
scroll |
<Ctrl>+<Ctrl> <Ctrl>+<u>로 스크롤할 행수를 설정한다. |
tabstop |
화면에 표시되는 외관상의 탭수를 설정한다. |
wrapmargin |
오른쪽 마진을 설정한다. 설정한 마진수를 초과하면 화면이 옆으로 밀리지 않고 리턴으로 개행된다. 0(초기설정치)를 설정하면 이 기능을 OFF로 한다. |
paragraphs |
편집 텍스트 중 단락의 구분을 나타내는 문자조를 설정한다. vi는 이것에 의해 설정된 문자로 둘러싸인 블록을 하나의 단락으로 인식하여 문자조의 사이를 }과 {으로 이동시킬 수 있다. 이 이동에서는 섹션으로 설정된 문자조도 단락으로 간주한다. Default의 설정에서는 .IP, .LP, .PP, .P, .LI, .pp, .lp, .ip, .bp 10개의 문자조가 설정되어 있다. |
ections |
paragraphs의 단락에 대해서 섹션은 절을 구획짓는 문자를 설정한다. 절 사이의 이동에는 [과 ]을 사용한다. 이 때 paragraph로 설정된 문자조를 단락으로 간주하지 않는다. Default로는 NH, .SH, .H, .HU, .us, .sh, .+c 의 7문자조가 설정되어 있다. |
옵션의 세팅과 확인.
:set <option> |
<option>을 사용함. |
:set no<option> |
<option>을 사용하지 않는다. |
:set <option>=<value> |
<option>을 <value>값으로 지정한다. |
:set |
Default가 아닌 모든 옵션들의 값들을 보여준다. |
:set <option>? |
<option>에 해당하는 값을 보여준다. |
:set all |
모든 option과 각각의 값들을 보여준다. |
이 문서는 vi를 사용해 작성했습니다. 이 문서의 원 저자는
Author: Maarten Litmaath <maart@nat.vu.nl> 입니다.
|