Como baixar o Sabayon GNU/Linux mais atual e configurá-lo

O Sabayon GNU/Linux é uma distro (com código próprio) derivada do Gentoo, 100% compatível, mas não idêntica a ele. Por isso, se pode usar tanto o Instalador de pacotes do Gentoo (Portage, comando emerge) como o padrão do próprio Sabayon (Entropy, através do comando equo).

Imagem

Vamos ver como isso pode seu feito.

Imagem

A) O Ponto de Partida:

É óbvio, você precisa ter um Computador com o Sabayon Linux instalado. Baixe a ISO adequada, 32 ou 64 Bits, com o ambiente gráfico que preferir, há várias opções (KDE, GNOME,LXDE, MATE, E17 etc…). Prefira baixar uma das “Daily Builds”, posto que o Sabayon é “Rolling Release”, e as “Daily” são as mais recentes:

ftp://sabayon.c3sl.ufpr.br/sabayon/iso/daily/
http://sabayon.c3sl.ufpr.br/iso/daily/

Após baixar a .iso, clique em “Instalar no Disco“, o Instalador é clássico e gráfico, Anaconda, utilizado por outras distros também, como o Fedora, portanto é Intuitivo:

Instalado, atualize-o, usando Entropy. Como é Rolling Release, sempre haverão pacotes novos.
Utilize os comandos abaixo:

$ sudo equo up
$ sudo equo i

B) Preparando para utilizar o Entropy:

Com um Editor de Texto, em modo Root:

ETAPA OBRIGATÓRIA. Leia a Mensagem de ATENÇÂO

Isto é necessário para otimizar a velocidade do Entropy e também para evitar que ele faça “Downgrade” dos pacotes, ao ser mesclado com o Portage.

Veja como esse Arquivo completo é basicamente:

http://www.pinguimteajuda.com.br/node/217

O edite adequadamente, coloque “enable” na linha “ignore-spm-downgrades”; Também coloque “enable” na linha “packages-delta =” e na linha “multifetch =” coloque uma Unidade a mais do que a velocidade máxima de sua rede. Assim, para uma rede de 2M, o arquivo deverá ficar como abaixo:

# Project Entropy 1.0 Equo configuration file

# Collision protection
# 0: No protection
# 1: Removal protection (recommended)
# 2: Installation/Removal protection
collision-protect = 1

# Configuration files protection
# This works in the same way of Portage CONFIG_PROTECT but it's Entropy related
#
# syntax for CONFIG_PROTECT:
# config-protect = /path/to/dir1 /path/to/dir2 /path/to/dir3
#
# default: unset, internal variable will be used (this is stored into
# the repository database)
#
# 2: Installation/Removal protection
config-protect = /etc/conf.d /etc/hosts /etc/X11/xorg.conf /etc/X11 /etc/entropy

# Configuration files protection
# This works in the same way of Portage CONFIG_PROTECT_MASK but it's
# Entropy related
#
# syntax for CONFIG_PROTECT_MASK:
# config-protect-mask = /path/to/dir1 /path/to/dir2 /path/to/dir3
#
# default: unset, internal variable will be used (this is stored into the
# repository database)
#
# 2: Installation/Removal protection mask
config-protect-mask = /etc/pam.d

# Configuration files protection
# List of files that should be kept as they are: whose updated config files
# will be rejected
#
# syntax for CONFIG_PROTECT_SKIP:
# config-protect-skip = /path/to/dir1 /path/to/dir2 /path/to/dir3
#
# default: unset, internal variable will be used (this is stored into the
# repository database)
#
# 2: Installation/Removal protection skip
config-protect-skip = /etc/conf.d/hostname /etc/sudoers /etc/exports

# Configuration files backup
# Option to enable/disable automatic backup of files merged by "equo conf update"
# Valid parameters: disable, enable, true, false, disabled, enabled, 0, 1
# Default parameter if unset: enable
files-backup = false

# Extra package hash check modules
# Option to selectively choose what extra package hash checks to execute
# when installing a package. Modules avaiable are sha1, sha256, sha512 and gpg.
# Default parameter if unset: sha1 sha256 sha512 gpg
# PLEASE NOTE: to fully disable GPG feature, please have a look at the
# "gpg" option below.
package-hashes = sha1 gpg

# GnuPG repository and packages verification feature.
# Valid parameters: disable, enable, true, false, disabled, enabled, 0, 1
# Default parameter if unsed: enable
# It is strongly suggested to keep gpg feature enabled.
# gpg = enable

# Force critical updates first
# Option to enable/disable forced critical updates installation.
# Valid parameters: disable, enable, true, false, disabled, enabled, 0, 1
# Default parameter if unset: enable
# forced-updates = enable

# Number of days that should pass before package files
# get removed from cache automatically.
# Note that this feature should be disabled in server-environments where
# storing packages cache is subject to different policies.
# The daemon in charge of this is client-updates-daemon available via
# entropy-client-services package. You may consider cleaning up packages cache
# manually by calling "equo cleanup" either inside a cronjob or by hand.
# Valid parameters: <integer, representing number of days>
# Default parameter if unset: <feature disabled>
# NOTE: values <0 or >365 are not tolerated.
packages-autoprune-days = 60

# Enable/disable simultaneous download of packages by Entropy Client
# Valid parameters: disable, enable, true, false, disabled, enabled
# By default, if multifetch is enabled, only 3 simultaneous downloads
# are allocated. To change this, just set multifetch to a value between
# 1 and 10.
# Default parameter if unset: disable
multifetch = 4 # EDITE ASSIM

# Enable Entropy package delta download (when delta packages are available).
# Running on limited bandwidth? Do you have monthly bandwidth limits?
# Enable this feature and further package updates will be downloaded through
# their .edelta files, saving a lot of bandwidth.
# Default parameter if unset: disable
packages-delta = enable #EDITE ASSIM

# Ignore SPM (Portage) pseudo-downgrades
# USE AT YOUR OWN RISK, IF YOU DON'T KNOW WHAT'S THIS OPTION
# !!!!!!!!!!!!!!!!!! SKIP IT !!!!!!!!!!!!!!!!!!
# !!!!!!!!!!!!!!!!!! SKIP IT !!!!!!!!!!!!!!!!!!
# !!!!!!!!!!!!!!!!!! SKIP IT !!!!!!!!!!!!!!!!!!
# !!!!!!!!!!!!!!!!!! SKIP IT !!!!!!!!!!!!!!!!!!
# This option permits to skip packages with Entropy revision 9999
# from being treaten as downgrades. This usually happens when
# migrating from Portage to Entropy
# Valid parameters: disable, enable, true, false, disabled, enabled, 0, 1
# Default parameter if unset: disable
ignore-spm-downgrades = enable # EDITE ASSIM

# Enable the installation of debug files
# Also known as "splitdebug" support
# Valid parameters: disable, enable, true, false, disabled, enabled, 0, 1
# Default parameter if unset: disable
# splitdebug = disable
# HOW SPLITDEBUG WORKS with Entropy
# Once you enable the "splitdebug" feature
# you just need to (re)install packages in order to
# get /usr/lib/debug metadata files installed. That's it.
# You can safely remove /usr/lib/debug without affecting
# Operating System functionality, at any time.

Salve o Arquivo. está preparado para usar Entropy.

C) Preparando Para Usar Portage:

Para poder usar Portage, seja em Sabayon, como em Gentoo:

ETAPA RECOMENDADA, DESEJÁVEL, Leia a Mensagem de OBSERVAÇÃO.

Geralmente ele está em: [i]/etc/make.conf[/i] ou em [i]/etc/portage/make.conf [/i].

Deve haver um só arquivo. Se houverem dois, eles precisam ser idênticos, portanto delete um deles, ou deixe os dois iguais (cópias iguais), ou ainda faça um link simbólico.

Para editar o [i]make.conf[/i], tem muita coisa, assunto extenso para ser descrito aqui. Porisso, faça uma cuidadosa busca na rede, usando palavras-chave tipo: “make.conf in Gentoo”; “Editing make.conf”; “Optimizing Compilation with Portage”; “Safe FLAGS in Gentoo” etc…

Pode se basear em Artigos detalhados:

http://www.linuxfast.com.br/artigo/Como-e-por-que-editar-o

ou em Arquivos make.conf típicos de Sabayon mesmo ou de Gentoo:

http://www.pinguimteajuda.com.br/node/219
http://www.vivaolinux.com.br/etc/makeconf-1

Edite e salve o arquivo, feito isso, sistema preparado para usar Portage.

D) Atualizando e Configurando:

Preparado o Sistema, reatualize os repositórios Entropy e atualize o Portage, suas dependências, infra-estrutura e arquivos auxiliares:

$ sudo equo up –force
$ sudo emerge –sync
$ sudo emerge -v –skipfirst portage
$ sudo emerge -av –newuse gentoolkit portage-utils mirrorselect eix esearch eselect layman git curl subversion 
$ sudo emerge -av gcc gcc-config autoconf automake make cmake
$ gcc-config -l (Aqui escolha o gcc mais novo)
$ sudo gcc-config NUMERO DO GCC MAIS NOVO
$ sudo layman -a sabayon
$ sudo layman -a sabayon-distro
$ sudo etc-update

Regule o Perfil de Portage, compatibilize Portage com Entropy e otimize as varíaveis de ambiente:

$ eselect profile list (Aqui escolha o perfil de Portage. Eu uso o Perfil de Desktop)
$ sudo eselect profile set NUMERO DO PERFIL ESCOLHIDO
$ sudo equo rescue spmsync
$ sudo env-update
$ source /etc/profile

Feito tudo isso (Ítens B-D) seu sistema está pronto para rodar Entropy junto com Portage.

Agora você perguntaria: Qual usar? Quando usar um, quando usar outro?

Bom, depende!

E) Atualizar todo o Sabayon:

Para atualizar todo o Sabayon, todos os pacotes, até o nível “Rolling Release”, o Entropy é mais prático e seguro. Atualize pela interface gráfica RIGO, ou com os comandos:

$ sudo equo up 
$ sudo equo u

Com Portage é mais difícil, mas se seu Sabayon é pequeno, para servidores etc.. e você quiser tomar proveito da otimização por recompilação, que o Portage faz, você pode tentar, porém de início faça somente simulando o comando, para ver se haveriam problemas:

$ emerge –pretend –update –deep –newuse world 
$ sudo emerge –ask –verbose –update –deep –newuse world

Simule antes, pois podem haver problemas de pacotes bloqueados, mascarados, colisões, sandbox etc… Não são “erros”, são proteções do Portage para não quebrar o sistema. Para solucionar, cada caso é um caso, mas o Portage “fala com você”, ele te dá mensagens, é só seguir o sugerido.

F) Instalar Pacotes:

Entropy (comando equo) é vantajoso quando o pacote é muito grande, como LibreOffice, KDE completo, ou quando é regular, comum, tipo por exemplo, o tocador VLC.

Também no caso dos Kerneis e dos drivers de vídeo, é bem mais fácil com Entropy:

http://www.vivaolinux.com.br/artigo/ATI-Catalyst-Radeon-Graphics-no-Sabayon-Linux-Instalando-e-configurando-drivers-proprietarios
http://gnutwoall.wordpress.com/2012/10/12/dica-o-jeito-mais-facil-de-atualizar-o-kernel-e-o-driver-de-video-em-sabayon-linux-2/

Para instalar os pacotes, os comandos típicos:

$ equo s PACOTE (procura se o pacote existe, se existir:)
$ sudo equo i PACOTE

Detalhes dos comandos de Entropy, veja:

http://www.vivaolinux.com.br/dica/Sabayon-Novos-comandos-Entropy

Portage é vantajoso quando você tem arquivos de sistema, como o Portage mesmo, como o GCC, como git, gentoolkit, boost etc…

Também é vantajoso quando você quer otimizar a performance do Pacote, para que funcione em seu micro o melhor possível, como o editor de vídeo Cinelerra. Instalado com Portage, ele será compilado especial para o seu micro, funcionando teóricamente melhor que um binário genérico.

Comandos típicos para instalar algo com Portage. Procurando um pacote:

$ emerge -s PACOTE ou
$ eix PACOTE
$ esearch PACOTE

Ou Procure na busca deste Site:

http://packages.gentoo.org/

Não achou? Ele pode estar em algum repositório alternativo, um “Overlay”. procure-o neste Site:

http://gpo.zugaina.org/

Achou o pacote? Instale-o:

$ sudo emerge -av PACOTE

Pode ser necessário adicionar o Overlay, veja na Página 5.

Para mais detalhes de todas as maneiras de instalar pacotes em Sabayon, consulte estes Artigos e links citados neles:

http://www.vivaolinux.com.br/artigo/Como-instalar-pacotes-no-Sabayon
http://www.vivaolinux.com.br/dica/Desmascarando-pacotes-em-Sabayon-e-Gentoo
http://www.vivaolinux.com.br/artigo/Como-criar-pacotes-para-o-Gentoo-ou-Sabayon-Linux
http://www.vivaolinux.com.br/dica/Instalacao-de-pacotes-em-sistemas-Sabayon-sem-acesso-a-rede
http://www.vivaolinux.com.br/dica/Instalar-programas-em-Sabayon-com-apenas-alguns-cliques-de-mouse

Usando os dois instaladores, Portage e Entropy, como eles são compatíveis mas não são idênticos, algumas coisas ficarão diferentes, não faz mal.

G) Não são Erros:

Primeiro, ignore mensagens de “erros” que diriam:

Portage COUNTER for Package tal…not found, resetting to 0…..

OU…

Is there some Libraries, tais e tais (lista) broken in your system, please run the command:
emerge @preserved-rebuild

Tais mensagens apenas querem dizer que seu sistema tem pacotes de Entropy e de Portage que estão em versões diferentes. Você está usando dois instaladores, portanto normal! Ignore! São erros se você usar um só instalador.

H) O que fazer? 

De vez em quando, rode o comando abaixo, para compatibilizar os Bancos de dados entre o Portage e o Entropy:

$ sudo equo rescue spmsync

Outra coisa normal: Como você está usando Portage e Entropy, será equivalente usar um comando ou outro, tanto faz usar um como outro, quando o sistema pedir para atualizar os arquivos de configuração:

$ sudo equo conf update (Comando do Entropy)

OU

$ sudo etc-update ou (Comandos de Portage)
$ sudo dispatch-conf ou
$ sudo cfg-update

O efeito será o mesmo. Somente lembre que vc editou o arquivo client.conf (Página 2), NÂO O ATUALIZE MAIS.

Para remover os pacotes, desinstalá-los, será indiferente fazer:

$ sudo equo rm PACOTE 
OU
$ sudo emerge -C PACOTE

I) O que não Fazer?

Para evitar quebras de Pacotes, NÃO EXECUTE em Sabayon (são só para Gentoo, só para Sistemas baseados em Portage puro!)

$ sudo emerge@preserved-rebuild OU
$ sudo revdep-rebuild

Quando o sistema pedir os comandos acima, prefira os equivalentes do Entropy:

$ sudo equo libtest
$ sudo equo deptest
$ sudo equo cleanup

Mais coisas a não fazer. Você até pode usar (mas não é o melhor) Entropy para instalar Portage:

Pode fazer:

$ sudo equo i portage

mas é melhor:

$ sudo emerge -av portage

Porém, NÃO USE Portage para instalar Entropy:

Não use:

$ sudo emerge -av entropy equo rigo

mas sim:

$ sudo equo i entropy equo rigo

Se fizer o contrário, pode quebrar o Entropy. Fazê-lo, é só em casos especiais, para corrigir problemas.

Para usar como exemplo, na prática, escolhemos um pacote muito importante. Instalar o Navegador de Internet Mozilla Firefox.

J) Com Entropy:

Suponha, você queira um Firefox comum, corrente, geral, o mais atualizado possível, mas estável.

São requisitos simples portanto, usar o Entropy:

$ sudo equo up
$ equo s firefox
$ sudo equo i firefox

Pronto, Firefox instalado em poucos minutos. Na atual versão (Sabayon 13) na data deste Artigo, é o Firefox 20.

Com outro pacote, a mesma coisa, substitua Firefox pelo nome do pacote que quer instalar.

K) Com Portage:

Agora outra situação. Eu quero um Firefox compilado com performance otimizada para meu micro, já direto compilado em Português do Brasil.

Ainda uma outra coisa que eu queira, no nosso exemplo.

Nos Firefox mais novos, os pacotes de dependência dos Codecs: [i]Xulrunner[/i] e [i]GStreamer[/i] ficaram depreciados (“deprecated”), obsoletos, e foram substituídos pelo pacote [/i]Mozrunner[/i]. O Mas eu quero que ele também tenha suporte para os Codecs antigos, porque gosto.

Então como se faz? Na Página 2, vimos que é necessário editar o make.conf, e já o editou, mas as FLAGS também podem ser colocadas, reguladas no comando emerge, diretamente. O comando usado para instalar, abaixo vai esclarescer.

Primeiro atualizo o Banco de Dados do Portage e procuro pelo Firefox que quero e sua dependência:

$ sudo emerge –sync
$ emerge -s firefox mozrunner

e vejo que a versão mais nova é o Firefox 20 (por exemplo, apenas. então procuro no Site (veja Página 3):

http://gpo.zugaina.org/www-client/firefox

e encontro que um Firefox mais novo, está no Overlay chamado [i]Mozilla[/i]. Preciso adicionar e atualizar o Overlay e confirmar que o pacote agora vai fazer parte do Banco de Dados do Portage+Overlay:

$ sudo layman -a mozilla
$ sudo layman -S
$ eix firefox mozrunner (ou emerge -s firefox mozrunner)

e ele apareceu, Firefox,versão 21, portanto instalável. Agora simulo a instalação, junto com suas dependências adicionais

Lembrem acima, que quero suporte também aos Codecs antigos e portanto, preciso dos pacotes do Gstreamer também e não devo tirar o Mozrunner, para não perder o suporte novo.

$ emerge -p firefox mozrunner gstreamer phono-gstreamer GStreamer

Simulado, tudo bem, vai instalar, uso este comando:

$ sudo LINGUAS=”pt_BR” USE=”gstreamer nls” emerge -av firefox mozrunner gstreamer phono-gstreamer GStreamer

Para você perceber, as opções esclarescem:

A variável LINGUAS, é porque quero compilar direto em Português do Brasil. A Variável USE são as USE FLAGS (como as Flags Gerais do make.conf) mas são as específicas desse Firefox, que quero compilar. “gstreamer” é porque os Firefox atuais do Portage seriam compilados sem gstreamer ( default é -gstreamer), se eu não especificasse. nls é uma Flag de locale, língua, significa “native language support”, é um suporte adicional ao Português do Brasil. Xulrunner não existe mais (foi incorporada dentro do Mozrunner).

Assim, nesse exemplo elaborado, demonstra-se que o pacote pode ser instalado do modo que se quer, através do uso das Flags adequadas, que regulam a compilação no Portage, compilação essa que o GCC executa.

Nos casos mas triviais, bastará você instalar o pacote. Se não regular as FLAGS, obterá a compilação default:

$ sudo LINGUAS=”pt_BR” emerge -av PACOTE

Naturalmente se você estiver usando Gentoo e não Sabayon, não haverá Entropy, tudo precisará ser instalado só com o Portage, mas os comandos são análogos.

L) Finalizando, eis a saída do comando emerge, mostrando o Firefox, que acabamos de compilare instalar:

albfneto@sabayon ~ $ emerge -s firefox
Searching… 
[ Results for search key : firefox ]
[ Applications found : 1 ]
* www-client/firefox
Latest version available: 21.0
Latest version installed: 21.0
Size of files: 103,091 kB
Homepage: http://www.mozilla.com/firefox
Description: Firefox Web Browser
License: MPL-2.0 GPL-2 LGPL-2.1

Neste Screenshot, vê-se o mesmo Firefox, compilado e instalado nas condições especificadas no Ítem K, rodando no Sabayon versão 13, e a página do Linux Fast. O Tema de Firefox (azul) é Blue Fox:

COLOCAR A FIGURA focacomp.png (convertida pelo sistema de vcs, em bfc6011d32be5a7649e4fe4307c7d6d2.jpg) AQUI

O ambiente gráfico é GNOME2 antigo mantido, com efeitos 3D de Compiz e com Cairo-Dock e pacote de Gadgets e Efeitos (Desklets), para detalhes desse ambiente gráfico, veja:

http://www.vivaolinux.com.br/artigo/Como-manter-GNOME2-em-Sabayon-Linux.
http://vimeo.com/24660937
http://vimeo.com/65012966
http://vimeo.com/24659429

Meu Sabayon 14.01 com XFCE 4.10:

Imagem

Fontes:

http://www.linuxfast.com.br/artigo/Sabayon-e-Gentoo.-Como-usar-Entropy-junto-com-Portage.&pag=354

http://www.pinguimteajuda.com.br/node/217

Anúncios

Firefox em pt-BR

Como estou a usar o Sabayon e ele vem por padrão o Chromium como navegador de internet, eu instalei o Firefox, porém, ele veio em inglês. Isto não seria problema pra mim, porém não sou o único a utilizar este notebook, tive que passar ele para português-brasileiro.

Para isso, precisamos do arquivo .xpi que corresponde à versão do Firefox instalada. Isso pode ser conseguido neste caminho de URL:

http://releases.mozilla.org/pub/mozilla.org/firefox/releases/25.0.1/linux-x86_64/xpi/

Imagem

Eu tirei um screenshot no ambiente fluxbox acima.

Escolha a tua versão e tenha o Firefox em pt-BR.

É isso!

Como restaurar os botões das janelas no Gnome 3

Bom, hoje eu instalei no meu desktop o Sabayon Gnome 3 x86.

Imagem

Agora, o sistema está sendo atualizado. Enquanto isso, vou organizando algumas coisas, como por exemplo, os três botões famosos das janelas, minimizar, maximizar e close, que no Gnome 3 vem apenas com o close.

Para isso, abra o terminal e digite:

$ gnome-tweak-tool

Vai abrir uma janela como esta:

Imagem

Conforme mostra a imagem, vá em “Shell”, no painel direito, procure por Arrangement of Buttons on the titlebar (ou “Organização dos botões na barra de título”). 

Escolha “All” (“Todos”).

Simples assim.

Como habilitar usuário root no GNU/Linux Ubuntu

Abra um terminal em seu ambiente gráfico, ou tecle, simultaneamente <Cntrl><Alt><F1>, que aparecerá:

Imagem

Antes de prosseguir, devo informar que para voltar à sua tela gráfica original, você deve digitar <Cntrl><Alt><F7>.

Agora vamos explicar os itens em vermelho:

jefferson nome do usuário logado;

~ → informa que você está em tua pasta /home/jefferson;

$ (dólar) → informa que não és superusuário, ou melhor, usuário “root”.

Para confirmar em qual diretório estás, digite o comando “pwd”:

Imagem

Para habilitar o usuário root, digitamos o comando “sudo -i” e seremos root temporariamente:

Imagem

Esta tela indica que és usuário root, estás na pasta /home/root e o “cerquilha” (#), confirma que és realmente o superusuário.

Para habilitar agora a senha de um root, digite “passwd”:

Imagem

Atenção, como foi digitado apenas “passwd”, este comando irá criar/mudar apenas a senha do root. Se tivéssemos digitado “passwd jefferson”, o comando iria mudar a senha do usuário jefferson.

Se quiseres testar a habilitação do usuário root, com senha, dê “exit” duas vezes e:

Imagem

É isso!

Como editar textos com o vi (vim)

Introdução

“vi” é a sigla para “Visual Interface”. A origem desse nome se deve ao seguinte fato: quando o vi foi criado (começo da década de 80), não era comum existirem editores de textos como nos dias de hoje. Naquela época, você digitava um texto mas não podia vê-lo! Isso mesmo! Em 1992, foi criado o vim (Vi IMitator), um clone fiel ao vi, porém com muitas outras funcionaliades, que só foram sendo adicionadas. Algum tempo depois, o vim passou a ser chamado de `Vi IMproved’ (vi melhorado).

Imagem

O vim é um dos editores de textos mais utilizados no mundo Unix. Em alguns sistemas, existe um link simbólico (/bin/vi) apontando para o /usr/vim. Em outros, o /bin/vi é o executável, só que executa diretamente o vim. Muita gente acha que usa vi, mas na verdade utiliza o vim, e eles têm algumas diferenças. O que você verá abaixo fala sobre o vim.

Imagem

O vim é um editor de textos muito poderoso, ele pode: abrir vários arquivos ao mesmo tempo, possui sistema de autocorreção, auto-identação, seleção visual, macros, seleção vertical de texto, uso de expressões regulares, sintaxe colorida, e muito mais. Ele não é exclusivo do Unix, ou seja, pode ser executado em outras plataformas, como Amiga, MacOS, Sun, Windows entre outras.

Existe também o gvim, que é o vim em modo gráfico, com todas as funcionalidades do vim em pleno funcionamento, o que muda é apenas o modo gráfico mesmo.

O vim possui vários modos, ou seja, estados em que ele se encontra. São eles: modo de inserção, comandos, linha de comando, visual, busca e reposição. Abordarei os dois principais:

Modo de inserção e de comandos

Para identificar o modo (estado) do vim, basta visualizar o rodapé da tela.

Agora, vamos à prática. Para executar o vim, utilize:

$ vi => Abre o vim vazio, sem nenhum arquivo e exibe a tela de apresentação.
$ vi arquivo => Abre o arquivo de nome “arquivo”.
$ vi arquivo + => Abre o arquivo de nome “arquivo”, com o cursor no final do mesmo.
$ vi arquivo +10 => Abre o arquivo de nome “arquivo”, com o cursor na linha 10.
$ vi arquivo +/Copag => Abre o arquivo de nome “arquivo”, na primeira ocorrência da palavra “Copag”.

Ao executar o vim, ele inicia diretamente em modo de comando. Para comprovar, é só olhar na última linha (rodapé) e não vai haver nada lá. Isso quer dizer que você não conseguirá escrever nada, pode digitar a vontade que só vai ouvir beeps. Para começar a escrever, pressione “i” em seu teclado. O vim entra em modo de inserção, que você comprova (como falado anteriormente) pelo rodapé da tela, onde fica a seguinte marcação:

– – — INSERT —

Suponha que você já digitou o bastante, e quer salvar, por segurança. Pressione a tecla ESC para voltar em modo de comandos. E veja os comandos para salvar/sair:

:w => Salva o arquivo que está sendo editado no momento.
:q => Sai.
:wq => Salva e sai.
😡 => Idem.
ZZ => Idem.
:w! => Salva forçado.
:q! => Sai forçado.
:wq! => Salva e sai forçado.

Então, você editou uma boa quantidade de textos e quer salvar:

:w

Agora, quer voltar a editar o texto:

i

Lembre que utilizando o “i” para inserção, a mesma se inicia inserindo texto antes do cursor. Veja agora outros subcomandos de inserção de texto:

A => Insere o texto no fim da linha onde se encontra o cursor
o => Adiciona uma linha vazia abaixo da linha corrente
O => Adiciona uma linha vazia acima da linha corrente
Ctrl + h => Apaga último caracter à esquerda

Voltando ao modo de comando:

Veja agora subcomandos para movimentação pelo texto:

Ctrl + f => Passa para a tela seguinte.
Ctrl + b => Passa para a tela anterior.
H => Move o cursor para a primeira linha da tela.
M => Move o cursor para o meio da tela.
L => Move o cursor para a última linha da tela.
h => Move o cursor para caracter a esquerda.
j => Move o cursor para linha abaixo.
k => Move o cursor para linha acima.
l => Move o cursor para caracter a direita.
w => Move o cursor para o início da próxima palavra (não ignorando a pontuação).
W => Move o cursor para o início da próxima palavra (ignorando a pontuação).
b => Move o cursor para o início da palavra anterior (não ignorando a pontuação).
B => Move o cursor para o início da palavra anterior (ignorando a pontuação).
0 (zero) => Move o cursor para o início da linha corrente.
^ => Move o cursor para o primeiro caracter não branco da linha.
$ => Move o cursor para o fim da linha corrente.
nG => Move o cursor para a linha de número “n”

(susbstitua n pelo número da linha)..
G => Move o cursor para a última linha do arquivo.

Copiando e colando textos no vim (utilizando o mouse)

Selecione o texto necessário com o botão esquerdo do mouse. Quando você for colar, saiba que o texto será colado a partir de onde se encontra o cursor (esse que aparece, às vezes piscando e às vezes não, quando você está digitando). Para colar, depois de ter selecionado o texto, você pode utilizar uma dessas opções:

1) Pressionando o botão direito do mouse;
2) Pressionando o botão direito + botão esquerdo juntos;
3) Pressionando o botão do meio do mouse (mouse de 3 botões);

Observação: Lembre-se que o vim deve estar no modo de inserção.

Usando o modo visual do vim

Entre no modo visual: v
Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado.
Pressione e cole, utilizando a tecla “p” (paste).

Veja agora como apagar um determinado texto:

Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e pressionando a tecla Delete.

Você pode remover até o final de uma palavra, utilizando: dw
Pode também remover até o final de uma frase: d$

Desfazendo uma ação

É claro que você pode desfazer uma ação que você considera errado, ou que errou ao digitar o texto. É só utilizar: u
Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r.

Subcomandos para localização de texto

/palavra => Procura pela palavra ou caracter acima ou abaixo do texto.
?palavra => Move para a ocorrência anterior da palavra (para repetir a busca use “n”).
n => Repete o último comando utilizando / ou ?.
N => Repete o último comando / ou ? ao contrário (baixo para cima).
Ctrl+g => Mostra o nome do arquivo, o número da linha corrente e o total de linhas.

Mais opções para remoção de caracteres

x => Apaga o caracter onde o cursor estiver.
dd => Apaga a linha inteira onde o cursor estive
D => Apaga a linha a partir da posição do cursor até o fim.
J => Une a linha corrente à próxima.
:5dd => Removeas próximas 7 linhas a partir da posição do atual do cursor (qualquer número).

Mais para copiar e colar

:yy => Copia a linha onde o cursor se encontra.
:5yy => Copia as próximas 5 linhas a partir da posição atual do cursor.
:p => Cola o que foi copiado na linha abaixo do cursor atual.

Opções para substituição de textos

rCARACTER => Substitui o caracter onde o cursor se encontra pelo caracter especificado em CARACTER.
RTEXTO => Substitui o texto corrente pelo texto digitado (sobrepõe).
cw => Remove a palavra corrente para substituição.
cc => Remove a linha corrente para substituição.
C => Substitui o restante da linha corrente, esperando o texto logo após o comando.
J => Une a linha corrente à próxima.
:s/velho/novo => Substitui a primeira ocorrência de “velho” por “novo” na linha corrente.
:% s/velho/novo => Substitui em todo o arquivo (%) a primeira ocorrência de “velho” por “novo” em cada linha.
:% s/velho/novo/g => Substitui em todo o arquivo (%), todas (g) as ocorrências de “velho” por “novo”.
:% s/velho/novo/gc => Igual ao anterior, mas pedindo confirmação para cada substituição.
:% s/^String[0-9]//gc => Expressões regulares também funcionam, como no sed.
:% s/./\u&/gc => Converte para maiúsculas (\u) o primeiro caracter (.) de cada linha.

Abreviações

:ab => Mostra todas as abbr.
:abc[lear] => Remove todos.
:iab => Apenas para modo de inserção.
:iabc[lear] => Tira todos de inserção.
:cab => Apenas p/modo de comando ( : ).
:cabc[lear] => Tira todos os modos de comando.
:una vc => Tira ab para vc.

Observação: Pontuação, espaço ou o ENTER, disparam a expansão de uma abreviação. Porém, Ctrl+] também pode ser usado, para expandir sem adicionar caracteres.

Opções para o comando SET

:set
autowrite aw => Salva a cada alteração.
backspace bs => Comportamento backspace (1 ou 2).
errorbell eb => Campainha de erro.
expandtab et => Troca tab por espacos.
fileformat=dos ff => Converte o arquivo para DOS.
hidden hid => Preserva o buffer.
hlsearch hls => Elumina a última procura.
ignorecase ic => Case insensitive na busca.
incsearch is => Ilumina procura enquanto digita.
laststatus=2 => Mostra linha de estado.
lazyredraw lz => Não redesenha em macros.
lines=N => Múmero de linhas na tela.
magic => Usar mágicas na procura de padrões.
number nu => Mostra núm da linha.
report=N => Mostra aviso quando N linhas mudaram (0=sempre).
showcmd => Mostra o comando que se está fazendo.
showmatch sm => Mostra o casamento de {},[],().
smartcase scs => Assume “noic” quando tiver maiúsculas.
textwidth=N => Quebra de linha do texto.
undolevels ul=N => Guarde os N últimos comandos para desfazer (padrão=1000).
vb t_vb= => Retira o “beep” de erro.

Agora invertendo maiúsculas/minúsculas

5~ => Inverte os 5 próximos caracteres.
g~$ => Inverte todos os caracteres até o fim da linha.
seleciona, u => Converte para minúsculas.
seleciona, U => Converte para maiúsculas.
seleciona, ~ => Inverte.

Observação: Onde está escrito “seleciona”, é para fazer utilizando o modo visual (v).

Agora veja como definir coluna de quebra de linha (problema que eu tive quando iniciei no aprendizado do vim):

:set textwidth=N

Se você já estiver num arquivo pronto:

:set wm=5 => O número 5 aqui são as colunas que serão “cortadas”.
gqG => Até o final do arquivo.

Vamos ver agora o que podemos fazer pressionando a tecla “Ctrl”:

É claro que é segurando Ctrl + .

No modo de COMANDO:

A => Incrementa um número (Add)
X => Decrementa um número
S => ScrollLock
L => Redesenha tela
V => Modo visual (Visual Vertical)
G => Status do arquivo
M => Início da próxima linha
E => Linha abaixo sem mover cursor
Y => Linha acima sem mover cursor
N => Próxima linha (Next)
P => Linha anterior (Previous)
F => PageDown (Forward)
B => PageUp (Backyard)
U => PageUp / 2 (Up)
D => PageDown / 2 (Down)

Agora, no modo de INSERÇÃO:

A => Insere o último texto inserido
I => TAB
S => ScrollLock
H => BackSpace
T => 2 tab’s no início da linha (Two Tabs)
V => Anula expansão do próximo caractere
J => Enter – quebra de linha
M => Enter – quebra de linha
L => Redesenha tela
R => Insere conteúdo do registrador [a-z] (Veja abaixo)
K => Insere um dígrafo (Veja abaixo)
N => Procura palavra no texto atual (Next)
P => Procura palavra no texto atual (Previous)
Y => Copia caractere que está acima (Yank)

Veja os caracteres especiais:

ga => Mostra o código da letra sobre o cursor.
:dig => Mostra todos os dígrafos disponíveis (tabela).

Exemplos: Para fazer um º, use Ctrl+K,-,o (“Ctrl”+”K”+”-“+”o”).
Para fazer um ½, use Ctrl+K,1,2 (“Ctrl”+”K”+”1″+”2”).

Trabalhando com arquivos e janelas múltiplas

Você pode abrir múltiplos arquivos, por exemplo:

$ vim arquivo1 arquivo2

E pode alternar entre as janelas. Veja:

:wn => Grava o atual e vai ao próximo.
:wN => Grava o atual e vai ao anterior.
:args => Mostra todos os arquivos atuais.
:qa => Sai de todas as janelas de uma vez.
:all => Abre todos os arquivos em janelas individuais.

Tecla chave das janelas = Crtl+W
j, seta abaixo => Move para janela abaixo.
k, seta acima => Move para janela acima.
o => Apenas esta janela, fecha todas as outras (Only).
+, – => Muda o tamanho da janela.
= => Deixa todas as janelas com tamanhos iguais.

Os registradores

“[a-z] => Use o registrador [a-z] para o próximo delete, cópia ou cola.
:reg => Mostra o conteúdo de todos os registradores.
:reg [a-z] => Mostra o conteúdo do registradores [a-z].

Observação: O [a-z] pode ser: 0-9a-z%#:.-=”

Marcas:

m[a-z] => Marca em [a-z] a posição corrente do cursor.
`[a-z] => Vai até a marca [a-z].
“ => Vai até a posição anterior ao último pulo (alterna).
:marks => Mostra as marcas ativas.

Fazendo gravação de seqüência de comandos

q[a-z] => Inicia a gravação de uma seqüência no registrador [a-z].
q[A-Z] => Inicia a gravação, adicionando no registrador [a-z].
q => Pára a gravação.
@[a-z] => Executa a seqüência do registrador [a-z] (5 vezes? 5@a)

Dica: Pode-se colocar o @[a-z] dentro da própria gravação do q[a-z]! Assim ele é executado recursivamente. Muito útil quando há uma procura de padrões na gravação. faz para todas as ocorrências.

Mapeamentos

:map :r!date => Mapeamento em modo de comando.
:imap :r!date => Mapeamento em modo de inserção.
:cmap r!date => Mapeamento em modo linha de comando.
:vmap :r!date => Mapeamento em modo visual.

Exemplos:

“html: negrito no trecho selecionado
:vmap d`pa # html: negrito no trecho selecionado

“liga/desliga autoIndent
:map ,si :set ai!:echo “autoIndent=”&ai

“mostrar os espaços em branco no fim das linhas
:map / *$^M

Através dos mapeamentos é possível “encurtar” comandos, ou seja, abreviá-los. Conheça as sintaxes:

Comment => Ciano
Constant => Roxo
Identifier => Ciano
PreProc => Azul escuro
Special => Vermelho
Statement => Amarelo
String => Roxo
Type => Verde

Todo => Preto, fundo marrom
Error => Branco, fundo vermelho
Ignore => Preto, fundo preto! – esconde

Utilizando o recurso de expandtab

Mas, o que isso faz? Transforma todos os TABs em espaços. Podemos ativar dentro do próprio vim, utilizando o comando:

:set expandtab

Para desabilitar:

:set noexpandtab

Podemos colocar também no arquivo ~/.vimrc a seguinte linha:

set expandtab

O arquivo ~/.vimrc pode ser usado para muitas configurações, e essa é uma delas. Existe ainda o arquivo ~/.exrc, mas não entraremos em detalhes.

Podemos incluir a saída de um comando no vim, utilizando:

:r!comando

Por exemplo:

:r!rpm -q kernel

Incluiria o seguinte resultado, dentro do seu texto (isso na minha máquina):

kernel-2.4.18-3

Dicas diversas do vim:

:xit => Igual :wq, mas só grava se tiver sido alterado algo no arquivo.

:map N_ARQ ^R=expand(“%:t:r”)^M
Imprime no arquivo o próprio nome do arquivo editado quando N_ARQ é digitado.

Agora, veja como alinhar o texto:

:left
:right
:center

E para fazer uma busca de 2 palavras ao mesmo tempo:
/palavra1\|palavra2

O vim é um editor de textos com centenas de opções, comandos, strings… Enão dá para abordar tudo aqui. Por isso, a melhor maneira de conhecê-lo a fundo é usando-o.

Agora, veja quem colaborou com a criação das dicas, e de onde eu tirei tanta informação:

Revista do Linux (Ed. 04 – Vi, vim e venci – Aurélio);
Página do Aurélio (www.verde666.org);
Dicas-L (expandtab) (www.Dicas-L.unicamp.br);
Dicas enviadas pelo amigo Uziel (uhfn@ig.com.br)
Vários tutoriais recolhidos pela internet.

Agradeço a todos aqueles que contribuiram direta e/ou indiretamente com os tutoriais.

Dicas desenvolvidas e gentilmente cedidas por Copag. Publicado em 30_06_2003.

Fonte:

http://www.infowester.com/linuxvi.php