quarta-feira, 17 de dezembro de 2008

Vim Reference




Editor VIM

Editor VI - Guia de Referência

Aurélio Marinho Jargas (http://aurelio.net)

Entrar e Sair

  • vi arquivo.txt
  • :q

Entrar, Inserir Texto, Salvar e Sair

  • vi arquivo.txt
  • i
  • Minha primeira frase no VI.
  • :wq

Entrar, Alterar Texto e Sair sem Salvar

  • vi arquivo.txt
  • dd
  • :q!

Entrar, Alterar Texto, Salvar em Outro Arquivo e Sair

  • vi arquivo.txt
  • yy
  • p
  • :w arquivo-novo.txt
  • :q

Configurar o VI

  • vi ~/.vimrc
  • i
  • set vb ru nu
  • set ic is hls scs
  • :wq

Repetir a Primeira Linha 2 Vezes e Apagar a Última

  • vi arquivo.txt
  • gg
  • yy
  • p
  • p
  • G
  • dd

Repetir Comandos

  • vi arquivo.txt
  • A
  • FIM
  • j
  • .
  • j
  • .

Abrir Dois Arquivos Simultaneamente

  • vi arquivo.txt
  • :split ~/.vimrc
  • Ctrl+W
  • Ctrl+W
  • :q
  • :q

Obter Ajuda

  • vi arquivo.txt
  • :help


Comandos de Arquivo
:q Sai do VI
:w Salva alteraçoes feitas
:wq Salva aterações e sai do VI
:q! Sai sem salvar
:w abc Grava arquivo com o nome 'abc'
:r abc Insere o conteúdo do arquivo 'abc'
:e abc Edita o arquivo 'abc'

Modo de Inserção
i Entra no modo de Inserção
a Entra no modo de Inserção, após o cursor
o Entra no modo de Inserção, em uma nova linha
Sai do modo de Inserção

Copiar, Cortar e Colar
yy Copia a linha inteira
5yy Copia as 5 próximas linhas
dd Apaga a linha
5dd Apaga 5 linhas
x Apaga uma letra
5x Apaga 5 letras
p Cola o trecho copiado ou apagado
V Seleção visual de linhas

Pulos
gg Pula para a primeira linha
G Pula para a última linha
44G Pula para a linha número 44
w Pula para a próxima palavra
b Pula para a palavra anterior
{ Pula para o parágrafo anterior
} Pula para o próximo parágrafo
( Pula para a frase anterior
) Pula para a próxima frase
f. Pula até o próximo ponto (.), na mesma linha
`` Desfaz o pulo, volta

Apagando com esperteza
dgg Apaga até o início do arquivo
d0 Apaga até o início da linha atual
dw Apaga a palavra
d4b Apaga as quatro palavras anteriores
df. Apaga até o próximo ponto
d) Apaga até o fim da frase

Outros
J Junta a próxima linha com a atual
u Desfaz o último comando
Ctrl+R Refaz o último comando desfeito
. Repete o comando anterior
hjkl Movimenta o cursor
/ Pesquisa um texto
n Vai para o próximo resultado da pesquisa
:%s/a/b/g Troca 'a' por 'b' em todo o texto
:!cmd Executa o comando externo 'cmd'
:r!cmd Insere o resultado do comando externo 'cmd'

Amarok Mysql

#!/bin/bash

#Migração banco de dados sqlite Amarok para mysql.

sudo aptitude install mysql-server-5.0 mysql-client-5.0 mysql-admin-common php5 mysql-navigator mysql-query-browser libmysqlclient12-dev mysql-admin sqlite3 phpmyadmin
echo "É necessário criar um banco amarok com todos os privilégios no banco para o usuário"
sleep 2
cd .kde/share/apps/amarok
sqlite3 collection.db .dump > amarok.sql
cat amarok.sql | grep -v "INSERT INTO admin" | \perl -pe 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO \1 VALUES/' > amarok2.sql
cat amarok2.sql | \grep -v "BEGIN TRANSACTION;" | \grep -v "COMMIT;" | \grep -v "CREATE TABLE" | \grep -v "INSERT INTO directories VALUES" | \grep -v "CREATE INDEX" | \grep -v "CREATE UNIQUE INDEX" > amarok_dados.sql
cat amarok.sql | \grep -v "BEGIN TRANSACTION;" | \grep -v "COMMIT;" | \grep -v "INSERT INTO" > amarok_estrutura.sql
replace "VARCHAR(1024)" "VARCHAR(996)" -- amarok_estrutura.sql
replace "VARCHAR(256)" "VARCHAR(255)" -- amarok_estrutura.sql
echo "Apague todas as linhas que não começam com CREATE"
sleep 3
vim amarok_estrutura.sql
echo "Fazendo dump no banco de dados"
echo "Dump Estrutura do banco"
cat amarok_estrutura.sql | mysql -u root -p amarok
echo "Dump Dados do banco"
cat amarok_dados.sql | mysql -u root -p amarok
echo "Dump executado com sucesso!"
cd

Basic smb.conf

[global]
workgroup = GROUPNAME
server string = COMPUTERNAME
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
log file = /var/log/samba/log.%m
max log size = 100
security = user
passdb backend = tdbsam
; realm = MY_REALM
; password server =
; domain master = yes
; domain logons = yes
; logon script = %m.bat
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
; logon path =
; add user script = /usr/sbin/useradd "%u" -n -g users
; add group script = /usr/sbin/groupadd "%g"
; add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u"
; delete user script = /usr/sbin/userdel "%u"
; delete user from group script = /usr/sbin/userdel "%u" "%g"
; delete group script = /usr/sbin/groupdel "%g"
; local master = no
; os level = 33
; preferred master = yes
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
; dns proxy = yes
; load printers = yes
; cups options = raw
; printcap name = /etc/printcap
; printcap name = lpstat
; printing = cups
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; encrypt passwords = yes
; guest ok = no
; guest account = nobody
username map = /etc/samba/smbusers
; store dos attributes = yes
#============================ Share Definitions ==============================

;[homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = @ggpli

;[printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = No
; printable = yes

;[netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no

;[Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes

;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff

[public]
path = /home/PASTA
writeable = yes
; browseable = yes
valid users = USUARIO, USUARIO