#############################################################################
##									   ##
##		D E S M I S T I F I C A N D O   O   V I M		   ##
##			    Unsekurity Team - 2001 			   ##
#############################################################################


Por The Alchemist ( alchemist@hackzone.com.br )


Obs: `Hackers` e o resto da `elite,` nao percam seu tempo lendo este texto, 
o seu conhecimento ja eh muito grande para ser gasto com um simples tutorial
como este.... ( ate por que este texto fala sobre o vi  :)


	========================
		SUMARIO
	========================
	1 - Introducao
	 1.2 - Por que aprender o ViM ( VI )
	 1.3 - Objetivos
	2 - Editando com o ViM
	 2.1 - Modos de edicao
	 2.3 - Movendo entre os modos de edicao
	 2.4 - Editando um arquivo existente
	 2.5 - Interrompendo, cancelando e saindo do vi
	3 - Movendo o cursor
	 3.1 - Descricao
	 3.2 - Movendo o curor por linhas e caracteres
	 3.3 - Movendo dentre as linhas
	 3.4 - Repetindo o comando de movimento varias vezes
	 3.5 - Movendo o cursos palavra por palavra
	 3.6 - Movendo o cursos por linhas, paragrafos e sentencas
	 3.7 - Movendo o cursos atraves das paginas
	4 - Procurando, inserindo e alterando o texto
	 4.1 - Descricao
	 4.2 - Procurando por palavras
	 4.3 - Inserindo texto
	 4.5 - Modificando texto
	5 - Copiando, movendo e salvando texto
	 5.1 - Descricao
	 5.2 - Copiando e movendo texto
	 5.3 - Usando comandos com o buffer
 	 5.4 - Restorando e repetindo alteracoes
	 5.5 - Salvando as alteracoes
	 5.6 - Editando um outro arquivo
	 5.7 - Comandos de controle da tela
	 5.8 - Recuperando e editado uma sessao
	 5.9 - Customizando o ViM
	 5.10 - Usando as opcoes SET

,-------------------------,
| 1 - I N T R O D U C A O |
`-------------------------`

	Bom, aqui estou eu escrevendo o meu primeiro texto 'oficial', ou em 
outras palavras, o primeiro texto que eu realmente termino a ponto de ser um
material que varias pessoas possam usar e ( espero que ) aprender alguma coisa
de boa ou nova. Atualmente eu estou com bastante trabalho ( o que nao eh nada
mau :) e isso consome praticamente todo o meu tempo, sendo essa a razao pela
qual muitas vezes deixo de me dedicar para coisas mais banais. Bah, mas chega
dessa choradeira toda hehehe, vamos ao que interessa mesmo. So lembrando que
se voce for da elite ou um raker, entao nem perca seu tempo lendo isso, pois
o conhecimento aqui contido nao eh para voce. So lembrando que ao final nao 
revisei o texto, entao erros de digitacao ou concordancia podem ocorrer. 
	O conteudo do texto foi todo escrito por mim, porem algumas coisas
usei como base de referenia ou mesmo de pesquisa. Em parte isso foi retirado
do "UNIX Utilities and Commands course Guide".

	1.2 - POR QUE APRENDER A USAR O ViM ( VI )

	Antes de mais nada, este texto fala mais precisamente do ViM, a versao
'turbinada' do VI ( le-se viai ), mas a maioria ( 99.7% ) do que eh descrito aqui
funciona sem prolema algum no VI. A um primeiro contato, usar o vi pode ser 
uma experiencia boa e interessante como pode ser uma guerra com o teclado e um
festival de palavroes ( quantas vezes voce ja tentou sair do editor e nao 
conseguiu ?? ). De qualquer maneira, quando aprende-se a trabalhar com este
magnifico editor, voce nao ira mais querer outra coisa, e sempre estara atras
de coisas novas sobre o vi. O vi eh como uma religiao, tem seus seguidores 
ao redor do mundo que sao capazes de passar horas discutindo com usuarios de 
outros editores ( lei-se emacs ) sobre as qualidades ( ou nao ) do mesmo. 
	Este texto nao tem o intuito de lhe forcar a usar o vi ou dizer que o
mesmo eh o melhor do mundo, apenas tem a finalidade de tentar ensinar o funcionamento
deste magnifico programa. Uma outra boa razao para dominiar o vi eh que ele eh
o editor padrao dos sistemas UNIX, e em um momento de dificuldade ( com por exemplo
uma pane no sistema ) o mesmo sera muito possivelmente o unico editor de textos
a sua mao. Eh isso entao, vamos agora para o que interessa :) 

,-----------------------------------,
|2 - E D I T A N D O  C O M  O  V I |
`-----------------------------------`

	Este capitulo discute os modos de operacao do vi, tais com o inicar
e terminar uma sessao.   

	2.1 - MODOS DE EDICAO
	Em alguns teclados ( ou quando a tecla ESC nao funcionar ) voce pode
sair do modo de edicao de texto usando a sequencia de CTRL+[. Isso muito 
provavelmente ira funcionar, porem sera rara a vez que este comando sera necessario.
O vi tem tres modos de operacao:

	- Modo de comando ou edicao
	- Modo de entrada de texto
	- Modo de ultima linha

A relacao entre os modos de edicao esta no ascii abaixo:

				ARQUIVO DO VI
				     	|
					|
,------------------,	    ,-------------------,	,---------------------,
| Entrada de texto | 	    | MODO DE COMANDO   |	|MODO DE ULTIMA LINHA |
|		   | <------|	deletar texto,  |	|editar outro arquivo,|
| append, mudar,   |  	    |	mover o cursor, | 	|excut. comando shell,|
| inserir, abrir,  |	    |	mover o texto ou| ENTER	|sair, ler um arquivo |
| trocar ou        |  ESC   |	desfazer (undo) |<------|pelo buffer, escrever|
| substituir	   |------->|___________________|	|o buffer para o      |
`------------------`		     |			|arquivo.	      |
| a, A, c, C, i, I,|		     |			|_____________________|
| o, O, R, s, S    |		     ZZ			|      :,/,?,!!       |
`------------------`					|_____________________| 

	2.3 - A seguinte tabela ira lhe ajudar a entender como e quando navegar
entre os modos de edicao:

MODOS DE EDICAO DO vi
------------------------------------------------------------------------------
MODO		DESCRICAO
-------------------------------------------------------------------------------
Comando		Este eh o modo default do vi, eh usando mais normalmente para
		mover-se pelo arquivo, deletar ou substituir textos. Qualquer
		comando pode ser entrado quando neste modo de comando,
		exceto eh claro, os comandos de entrada de texto :) . Para entrar
		no modo de comando, pressione a tecla ESC. Se a tecla
		ESC for presssionada quado ja estiver neste modo, entao o 
		comando atual ( ou que estava sendo realizado ) sera cancelado
		imediatamente, da mesma forma que CRTL+C tambem cancela um
		comando. 


Entrada de	Entra neste modo atraves do modo de comando usando as teclas
texo		a, A, cx, C, i, I, o, O, r, s ou S. O 'x' em cx representa
		o escopo do comando. Apos ter digitado alguma dessas teclas,
		voce pode digitar texto na posicao corrente do cursor. Lembre-se
		que para retornar ao modo de comando voce deve precionar ESC ou
		CTRL+[


Ultima Linha	Entra neste modo atraves do modo de comando usando 2 pontos ':',
		barra '/', interrogacao '?' ou exclamacao '!!'. 
		Ira aparecer um prompt na parte inferior do monitor, entao voce
		pode digitar algum comando. Para executar o comando precione
		ENTER ou precione CTRL-C para cancelar o mesmo.  

Se voce nao tem certeza em qual modo de edicao esta, precione ESC e ira ouvir
um beep, o que indica que agora voce entrou no modo de comando. Mais adiante
vamos ver como ter uma maneira visual de saber em qual modo de edicao estamos
atualmente. 

	2.4 - EDITANDO UM ARQUIVO EXISTENTE
	O exemplo a seguir mostra como editar um arquivo qualquer ( chamarei
de aloha.txt ). Basta simplesmente digitar no prompt do shell:

$vi aloha.txt
Primeira linha do arquivo |
Segundo linha do arquivo  | --> (1) 
Terceira linha do arquivo |  
~ | -->  (2)
~ |	
	.
	.
	,
~
~
~
"aloha.txt" 3 lines, 77 characteres (3)

(1) -> Se o arquivo existe, as primeiras linhas do arquivo sao mostradas na
tela.
(2) -> Se o numero de linhas no arquivo eh menor que o total de colunas da tela,
todas as linhas que nao contiverem algo escrito terao um til '~' no inicio da 
linha.
(3) -> A ultima linha indica o nome do arquivo, o total de linhas e o total
de caracteres no mesmo. 

Se o voce digitar

$vi arquivo

e o arquivo de nome 'arquivo' nao existir ainda, o vi ira cria-lo, sendo que 
na parte inferior da tela ira aparecer

"arquivo" [new file]

	
	2.5 - INTERROMPENDO, CANCELANDO E SAINDO DO VI
	A tabela a seguir lista os comandos usados para sair do vi, executar
um comando qualquer ou rodar a shell de login dentro do vi:

TABELA DE COMANDOS
------------------------------------------------------------------------------
Para fazer:				Use:
-------------------------------------------------------------------------------
Sair do vi, salvando as alteracoes	zz
se precisar:

Sair do vi. Se alguma alteracao foi 	:q
feita, o vi ira mostrar uma mensagem
de alerta e nao ira sair

Forcar a saida do vi sem gravar as	:q!
alteracoes feitas no arquivo

Gravar as alteracoes no arquivo 	:w

Gravar as alteracoes e sair do vi	:wq

Rodar o comando usando o shell. O 	:w !comando
comando executado nao ira afetar o
buffer de edicao de texto

Executar a shell de login. Ao 		:sh
digitar exit voce ira retornar ao
vi

Forcar a saida do vi			CTRL+Z

-------------------------------------------------------------------------------

,-----------------------------,
|   3 - MOVENDO O CURSOR      |
`-----------------------------`
	3.1 - DESCRICAO
	Quando voce inicia o vi, voce esta no modo de comando. Para mover o 
curor entre as linhas/palavras do arquivo voce precisa necessariamente estar
no modo de comando ( uma excessao: voce pode move o cursor simplesmente usando
as setas do teclado, mas por razoes didaticas sera descrito como fazer o mesmo
usando comando de teclado ). O fato eh que algumas pessoas acham mais simples
e pratico usar comando de teclado para mover-se no arquivo. A tabela seguinte
mostra os comandos mais usando para fazer tal movimentacao no arquivo:

	3.2 - MOVER O CURSOR POR LINHAS E CARACTERES
-------------------------------------------------------------------------------
Move o cursor para:			Use
------------------------------------------------------------------------------
Um caracter a esquerda			h, CTRL+h ou seta para esquerda
Uma linha abaixo			j, CTRL+n ou seta para baixo
Uma linha acima				k, CTRL+p ou seta para cima
Um caracter a direita			l, barra de espaco ou seta para direita
-------------------------------------------------------------------------------

Obs: nao se esqueca de que o vi leva em consideracao a altura da casa das letras,
entao H eh um comando e h eh outro comando. Nao se esqueca disto. 

	3.3 - MOVENDO O CURSOS ENTRE AS LINHAS
	A tabela seguinte mostra alguns comando que voce pode usar para mover
o curor pela linha atual:

-------------------------------------------------------------------------------
Move o cursos para:			Use:
-------------------------------------------------------------------------------
O inicio da linha			0
O primeiro caracter nao-espaco		^
O fim da lnha				$
O proximo caracter 'x'			fx
O caracter 'x' anterior			Fx
Uma coluna antes o caracter 'x'		tx
Uma coluna apos o caracter 'x'		Tx
-------------------------------------------------------------------------------
Para:					Use:
-------------------------------------------------------------------------------
Repetir o ultimo comando f, F, t ou T	;
Repetir o ultimo comando f, F, t ou T	,
na direcao oposta
-------------------------------------------------------------------------------

Lembre-se de que eh necessario que voce esteja no modo de comando ( precione ESC ).

	3.4 - REPETINDO O COMANDO DE MOVIMENTO VARIAS VEZES

	Eh possivel prefixar os comando do vi com o numemro de vezes que voce
deseja que o comando seja executado. Por exemplo:

	- Pressione k para mover o cursor uma linha acima
	- Pressione 6k para mover o cursos 6 linhas acima
	
	3.5 - MOVENDO O CURSOR PALAVRA POR PALAVRA
	
	Antes de prosseguir, considere o que o vi considera uma palavra grande
e uma palavra pequena ( big word e small word ):

	-------------------------------------------------------------
	Tipo de palavra:	Descricao
	-------------------------------------------------------------
	Big word		Uma sequencia de letras, digitos e/ou
			pontuacao delimitada por uma nova linha, espaco
			tabulacao ou o inicio da linha. Pontuacao eh 
			consideracao uma big word quando eh delimitado
			por um espaco ou tabulacao em cada lado.
	
	Small word		Uma sequencia de letras e/ou digitos
			delimitados por uma nova linha, espaco, tabulacao
			o inicio de uma nova linha ou algum tipo de
			pontuacao. Uma serie de pontuacao em sequencia eh 
			considerado uma small word
	----------------------------------------------------------------

A proxima tabela mostra como voce pode se movimentar pelas sequencias no 
arquivo. Lembre-se de que eh necessario que voce esteja em modo de comando.

	-----------------------------------------------------------------
	Move o cursor para:		Use:
	-----------------------------------------------------------------
	Proxima 'small word'		w
	'small word' anterior		b
	O fim da proxima 'small word'	e

	Proxima 'big word'		W
	'big word' anterior		B
	O fim da proxima 'big word'	E
	-----------------------------------------------------------------


	3.6 - MOVENDO O CURSOS POR LINHAS, PARAGRAFOS E SENTENCAS
		Em adicao a mover o cursor por linhas e palavras, voce pode
mover o cursos por sentencas, paragrafos e paginas de texto. A proxima tabela
mostra como mover o cursos por linhas e sentencas:

	-------------------------------------------------------------------
	Move o cursor para:		Use:
	-------------------------------------------------------------------
	Topo da linha na tela		H
	Meio da tela			M
	Parte inferior da tela		L
	Primeiro caracter nao-espaco	+ ou ENTER
		na proxima linha	
	Primeiro caracter nao-espaco	-
		na linha anterior
	--------------------------------------------------------------------

	A proxima tabela mostra como mover o cursor por sentencas, paragrafos
ou secoes do texto:

	----------------------------------------------------------------
	Move o cursor para o inicio de:		Use:
	----------------------------------------------------------------
	Sentenca anterior			(
	Proxima sentenca			)
	Paragrafo anteior			{
	Proximo paragrafo			}
	Secao anterior				[[
	Proxima secao				]]
	----------------------------------------------------------------

	3.7 - MOVENDO O CURSOR ATRAVES DAS PAGINAS
		As partes a seguir dependem de como o seu terminal esta
configurado, tais como numero de linhas e numero de colunas. A tabela a 
seguir mostra os comandos usando para fazer a paginacao atraves do texto:

	-----------------------------------------------------------------
	Para:				use:
	-----------------------------------------------------------------
	Rolar a tela para cima: 	CTRL-u
	Rolar a tela para baixo:	CTRL-d
	Uma tela para tras:		CTRL-f
	Uma tela para frente:		CTRL-b
	Rola a tela uma linh para cima:	CTRL-y
	Rola a tela uma linha para 	CTRL-e
		baixo:
	PageUp:				z+
	PageDown:			z^
	Coloca o curor na linha x ou  	xG
		 na ultima linha:
	----------------------------------------------------------------

Eh claro que para muitas das coisas aqui descritas voce pode usar as teclas
normais do teclado como PGUP e PGDOWN :)


	,---------------------------------------------,
	| 4 - PROCURANDO, INSERINDO E ALTERANDO TEXTO |
	`---------------------------------------------`
		4.1 - DESCRICAO
		Esta secao discute como procurar, inserir e trocar texto em
um arquivo. As tabelas seguintes proveem os comandos necessrios para completar
as operacoes:

		4.2 - PROCURANDO POR PALAVRAS
	Procurando por palavras chave ou sequencias
	------------------------------------------------------------
	Para:				Use:
	------------------------------------------------------------
	Colocoar o texto na proxima 	/seq
	   linha contento 'seq':
	Colocar o cursos na linha	?seq	
	   anterior contendo 'seq':
	Repetir a ultima procura por  	n
	  'seq' na mesma direcao:
	Repetir a ultima procura por	N
	  'seq' na direcao oposta:
	Colocar o cursor n linhas 	/seq /+n
	  apos encontrar 'seq':
	Colocar o cursor n linhas	?seq ?-n
	  antes de encontrar 'seq':
	---------------------------------------------------------
Por exemplo, digamos que voce queira procurar a palavra 'Virtual' no arquivo. 
Para realizar isso basta fazer ( em modo de comando, eh claro ):

/Virtual

e o cursor sera posicionado na posicao corrente. Logicamente voce tambem pode
procurar por fazes, como a seguir:

/Onde esta isso

e assim por diante :)
	

	4.3 - INSERINDO TEXTO
	Quando voce estiver no modo de comando, os seguintes comandos colocam
o vi em modo de edicao de texto:

	---------------------------------------------------------
	Para:					Use:
	---------------------------------------------------------
	Comecar editando a direita do cursor:	a
	Comecar editando no fim da linha:	A
	Inserir texto antes do cursor:		i
	Comecar escrevendo na linha seguinte:	o
	Comecar escrevendo na linha de cima:	O
	----------------------------------------------------------

	4.4 - MODIFICANDO TEXTO
	Os comandos a seguir sao para mudar algum texto ( eh necessario que 
o editor esteja em modo de comando - pressione ESC ):

	-----------------------------------------------------------
	Para:						Use:
	------------------------------------------------------------
	Mudar esta palavra:				cw
	Mudar a palavra anterior:			cb
	Mudar para o fim da linha:			c$
	Mudar para o inicio da linha:			c0
	Mudar a linha toda:				cc ou C
	Deleta o texto na posicao atual do 		dw
  	  cursor para o fim da palavra:
	Deleta o texto ate o fim da palavra:		de
	Deleta da posicao atual ate o fim 		D ou d$
	  da linha:				
	Deleta da posicao atual ate o inicio		d0
	Delete a linha inteira:				dd
	Troca o caracter na posicao atual		rx
	 por x
	Faz replace a partir da posicao atual:		R
	Deleta o caracter atual e insere novo texto:	s
	Deleta a linha atual e insere novo texto:	S
	Deleta o caracter na posicao do curor:		x
	Deleta o caracter anterior:			dh ou X
	Coloca a proxima linha no final da linha atual:	J
	Faz 'undo' ( desfaz a acao ):			u
	Muda a altura da casa na posicao atual:		~
	------------------------------------------------------------

	,----------------------------------------,
	| 5 - COPIANDO, MOVENDO E SALVANDO TEXTO |
 	`----------------------------------------`
		5.1 - DESCRICAO
		Esta secao discute como usar os buffers para copiar, colar,
deletar e substituir textos. 

		5.2 - COPIANDO E MOVENDO TEXTO
		Umas das maiores usualidades dos editores de textos eh a 
possibilidade de deletar, copiar e mover partes de texto para uma outra
parte dentro do arquivo. O vi usa 'yank' (puxar, pegar) e 'put' (colocar) 
juntamente com os comandos de delecao para mover texto para outras 
partes no arquivo. O vi usa tres tipos de buffers para guardar os textos
pegos ou deletados. O conteudo destes buffers podem ser restorados para
o buffer de edicao. Os tres tipos de buffer sao:

	- undo buffer ( buffer de restauracao )
	- Numbered (delete) buffer	
	- named buffer

	yank e delete buffers
	-------------------------------------------------------------------
	buffer	descricao		comentario
	-------------------------------------------------------------------
	undo	Usado para delecoes	Qualquer texto deletado ou removido	
	buffer  e tirada de textos	eh colocado no buffer undo, e pode
		normais. O conteudo	ser imediatamente colocado de volta
		esta disponivel ate	usando um comando de restauracao. 
		a proxima delecao	- O conteudo desse buffer eh alterado
		ou parte de texo 	a cada delecao ou retirada de texto.
		retirada/movida.	- Se voce usar 'dw' tres vezes  
					seguidas para 3 palavras, somente
					a ultima palavra excluida podera ser
					restaurada.
					- Da mesma forma, se voce retirar
					3 palavras usando sucessivamente o 
					comando 'yw', somente a ultima palavra
					retirada estara disponivel no buffer.

	Numbered Armazena as delecoes	Existem 9 locais neste buffer. Quando
	(delete) em locais em 		um numero de sucessivas delecoes eh 
	buffer	 sequencia quando	feita, o buffer como o stack ( push-down)
		 uma linha inteira	- Quando voce restaura o conteudo com 
		 ou mais eh deletada	'p' ou 'P', voce obtem a delecao mais
		 (dd,d), d}, d]])	recente.
					- Para restaurar mais delecoes, informe
					os numeros, como 'np' ou 'nP', onde n
					eh o numero que voce deseja.
		
	Named	Contem 26 locais	Cada local precisa ter um nome individual	
	buffer	chamados a ate z,	para a delecao, retirada ou restauracao.
		para guardar as 	Por exemplo:
		delecoes ou retiradas.	- "bdd deleta a linha e coloca o conteudo
					na localizacao b do buffer
					- "fd) deleta o texto da proxima sentenca,
					colocando o texto na posicao f do buffer.
					- Voce pode restaurar essas delecoes usando
					"bp, "fp, ou 'bP e "fP.

		5.3 - USANDO COMANDOS COM O BUFFER
		Use os seguintes comandos com os buffers undo, numbered ou named:
	
	---------------------------------------------------------------------
	Para:							Use:
	---------------------------------------------------------------------
	Restaurar o texto indicado por 'motion' no buffer undo.	y motion
	  yw restaura uma palavra, y ) restaura o texto no 
	  inicio da proxima sentenca.
	Restaurar toda a linha do buffer undo:			Y
	Restaurar o texto indicado por motion no buffer		"xy motion
 	  named designado pelo caracter 'x':
	Deletar o texto indicado por motion no buffer named
	  indicado pelo caracter 'x'. dd delete a linha toda. 	"xd motion
	Colocar de volta o texto contido no buffer undo na 	p
	  posicao depois do curor:
	Colocar de volta o texto contido no buffer undo 	P
	  antes da posicao do cursor:
	Colocar de volta o texto do buffer numbered 	 	"np
	  indicado por 'n' apos o cursor:
	Colocar de volta o texto do buffer numbered 		"nP
	  indicado por 'n' antes do cursor:
	Colocar de volta o texto do buffer named indicado	"xp
	 por 'x' depois da posicao atual do cursor:
	Colcoar de volta o texto do buffer named indicado	"xP
	 por 'x' antes da posicao atual do cursor:
	Repetir o ultimo comando "np e incrementar o 		.
	  contador:
	----------------------------------------------------------------------

		5.4 - RESTORANDO E REPETIDO ALTERACOES
		Os comandos da proxima tabela em modo de comando para desfazer
ou repetir algum comando:

	----------------------------------------------------------------------
	Para:							Use:
	----------------------------------------------------------------------
	Desfazer o ultimo comando caso voce encontre algum 	u
	  erro:
	Desfazer todas as alteracoes em uma linha:		U
	Repetir o ultimo comando. 				.
	----------------------------------------------------------------------

		5.5 - SALVANDO AS ALTERACOES
		Os comando na tabela a seguir sao usados para salvar o arquivo
que esta sendo editado no momento. 

	--------------------------------------------------------------
	Para:						Use:
	--------------------------------------------------------------
	Gravar as alteracoes feitas:			:w
	Gravar as alteracoes feitas no arquivo 'arq'	:w arq
	Sobrescrever arq com o conteudo do buffer	:w! arq
	  editado:
	---------------------------------------------------------------

		5.6 - EDITANDO UM OUTRO ARQUIVO
		Os comandos a seguir podem ser usando para editar um arquivo
diferente ao qual se esta editando no momento:

	-----------------------------------------------------------------
	Para:						Use:
	------------------------------------------------------------------
	Editar o arquivo chamado 'arquivo';		:e arquivo
	Reeditar o arquivo atual, descartando todas as	:e!
	Le do arquivo 'arquivo' depois da posicao do 	:r arquivo
	  cursor:
	Executa o comando 'comando' colocando a saida 	:r! comando
	  do comando no arquivo, apos a posicao do 
	  cursor:
	-----------------------------------------------------------------

		5.7 - COMANDOS DE CONTROLE DE TELA
		Os comandos a seguir podem ser usando para realizar algumas
acoes com a tela:

	-----------------------------------------------------------------
	Para:						Use:
	-----------------------------------------------------------------
	Limpar ou redesenhar a tela:			CTRL+l
	Redesenhar a tela com a linha atual no topo	z ENTER
	  da tela:
	Redesenhar a tela com a linha atual na parte	z-	
	  inferior da tela: 
	Redesenha a tela com a linha atual no meio	z.
	  da tela:
	Redesenhar a tela com a linha contendo 		/expressao/z-
 	  'expressao' na parte inferior da tela:
	------------------------------------------------------------------

		5.8 - RECUPERANDO E EDITANDO UMA SESSAO
		Se o sistema quebra enquando voce esta editando um arquivo ou
caso algum outro problema ocorra, toda e qualquer alteracao feita no arquivo 
que nao tenha sido salva sera perdida. Contudo, uma copia do buffer de edicao
( edit buffer ), contendo as alteracoes nao salvas, pode ser recuperado. A 
proxima vez que voce tentar editar o arquivo, voce sera informado que uma
copia do arquivo existe e ira lhe questionar sobre o que fazer. Apertar O
voce abre o arquivo em modo somente leitura, apertar R o vi tentara recuperar
o arquivo para voce, e apertar Q sai da edicao do mesmo. Voce ainda pode tentar
usar o comando

$vi -r nome_do_arquivo

para tentar recuperar o mesmo. 

		5.9 - CUSTOMIZANDO O VI
		Por padrao, o vi nao quebra linhas longas ( wrap ), quando
voce faz alguma pesquisa no arquivo, o mesmo leva em consideracao a altura
da casa das letras ( diferencia minuscula de maiuscula ). Para resolver 
problemas como esse, o vi contem uma serie de comando para as mais diversas
finalidades. Os mesmos podem ser digitados em modo de comando ou gravados
em um arquivo em disco, para que voce nao precise redigitar os comandos
toda vez que abrir o vi. Como este texto fala mais precisamente do vim, os
comandos voce pode gravar no arquivo ~/.vimrc. Abaixo os 3 que considero mais
uteis, e logo apos uma pequena lista dos comandos possiveis:
	
	set ruler
	syn on
	set bs=2 

Pela ordem, eh ativada a regua ( ou o contador de linhas/colunas ), colocamos
sintaxe no arquivo ( para trabalhar com C, perl, php, etc ) e ativamos o 
funcionamento da tecla BACKSPACE. Aconselho voce a colcoar estes comando no
arquivo .vimrc ( dentro do seu diretorio home ). 
	Para ter uma listagem completa dos comandos possivel, entre no modo
de comamdo do vi e digite 

	:set all

Para obter ajuda em algum topico, digite

	:help 

ou 

	:help assunto


		5.10 - USANDO AS OPCOES SET
		Existem 2 modos de como as opcoes podem ser altaradae com o 
comando :set :
	- Atravez de opcoes, que podem ser on ou off
	- Atraves de opcoes que podem ser um numero ou string

As opcoes de on ou off sao usadas da seguinte forma:

Para ativar:
:set option

Para desativar:
:set nooption

Por exemplo, para dizer ao vi que eh para ingorar a altura da casa das letras,
use

:set ingorecase

e para fazer o contrario, digite

:set noingorecase

Simples, nao?! :)

	,--------------------------,
	|  6 - T E R M I N A N D O |
	`--------------------------`

	Bom, entao eh isso. Espero que este material lhe tenha sito util de
alguma maneira. O vi eh uma grande ferramenta e ate ter o total dominio da 
mesma voce tera que passar boas horas estudando o mesmo. 

	Up the Irons!!!

----------------------------
Desmistificando o ViM 
The Alchemist - 02/2001
alchemsit@hackzone.com.br
-----------------------------

	
		
