http://www.zago.eti.br/script/vi1.txt continuação do FAQ vi.txt Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux ************************************** ************************************** ************************************** ************************************** Visite esta página para extraterrestres: http://www.thomer.com/thomer/vi/vi.html ************************************** Eu não sabia como copiar/colar no vi, mas fiz alguns testes a partir do que você escreveu, e consegui recortar/colar da seguinte forma: - Digite ESC. - Posicione o cursor no início do texto que quer recortar. - Digite v minúsculo. - Usando as teclas de direção, marque o texto a ser recortado. - Digite d minúsculo. - Posicione o cursor no ponto onde deseja colar o texto. - Digite p minúsculo. O que eu fiz foi somente digitar d ao invés de digitar y. []'s Edward Martin Em Sexta 13 Abril 2001 08:57, Edgard Lemos escreveu: > O vi é um editor de textos escrito por extraterrestres para > extraterrestres. > > Só agora descobri como copiar e colar trechos de texto: > > - Digite ESC. > - Posicione o cursor no início do texto que quer copiar. > - Digite v minúsculo. > - Usando as teclas de direção, marque o texto a ser copiado. > - Digite y minúsculo. > - Posicione o cursor no ponto onde deseja colar o texto. > - Digite p minúsculo. > > Ainda não descobri como mover trechos de texto de lugar. Seria o > equivalente a "cortar e colar". > > Claro que, se eu marcar de novo o texto copiado e pressionar d minúsculo, o > texto some. Mas isso envolve operações demais. > > Alguém sabe como fazer isso de modo prático? ************************************** Pra cortar e colar: - Digite ESC - marque o texto do mesmo jeito que para copiar - aperte c minúsculo - aí é só colar o texto aonde você quiser com p minúsculo. ************************************** : > http://www.edconsultoria.com.br/linux/vi.html > Se, ao visitar este guia, você tiver sugestões para aprimorá-lo, fique à > vontade. :x = salva e sai gqap = reorganiza uma linha longa em várias, tenta agora um: :set textwidth 50 :gqap > Se, ao visitar este guia, você tiver sugestões > para aprimorá-lo, fique à vontade. :set textwidth 20 :gqap > Se, ao visitar > este guia, você > tiver sugestões > para aprimorá-lo, > fique à vontade. ************************************** -------------------------------------------------------------------- DESCADASTRAMENTO: mailto:Dicas-L-Request@unicamp.br?body=unsubscribe -------------------------------------------------------------------- http://www.Dicas-l.com.br/dicas/20011004.shtml -------------------------------------------------------------------- Vi e Awk --------------------------------------------------------------------- Colaboração: Marcelo Pereira Ao editar arquivos texto, especialmente aqueles de configuração, às vezes nos deparamos com a necessidade de inserir caracteres no início de várias linhas, na maior parte das vezes isso acontece quando precisamos comentar um bloco inteiro de código, e isso faz com que tenhamos o trabalho de inserir um a um os caracteres que precisamos. Utilizando as ferramentas disponíveis nas distribuições Linux/Unix/FreeBSD é possível agilizar não apenas este processo, mas inúmeros outros que possam surgir. Este é o caso do cat, sed, grep, awk, tail, head, cut, sort, entre outros. A dica a seguir utiliza o awk para comentar blocos de texto, utilizando o editor de textos vi. Para comentar algumas linhas: :li,lf ! awk '{ print "\# " $0 }' Onde: li - Linha Inicial; lf - Linha Final; $0 - Indica 'toda' a linha. Para li e lf, pode-se utilizar: - um valor absoluto; - um 'ponto', para indicar a linha 'atual'; - '-n' para indicar as n linhas anteriores a linha atual; - '+n' para indicar as n linhas a partir da atual; Exemplos: Inserir a letra 'a' nas linhas 7,8,9,10,11,...,84: :7,84 ! awk '{ print "a" $0 }' Inserir o caractere '#' nas 10 linhas a partir da linha atual: :.,+10 ! awk '{ print "\# " $0 }' Inserir o caractere '#' nas 10 linhas anteriores a linha atual: :-10,. ! awk '{ print "\# " $0 }' [Note que alguns caracteres precisam ser cotados.] Para comentar todas as linhas de um arquivo: % cat file.txt | awk '{ print "# " $0 }' > file.txt.out A utilização de $0 é feita no caso do script precisar incluir um caracter no início ou no final da linha, não sendo necessário alterar nenhum valor. No entanto, $0 indica 'todas as colunas' da linha, e estas colunas podem ser referencidas com $1 (coluna 1), $2 (coluna 2), $3 (coluna 3), $n (coluna n). Exemplo, utilizando o ls: Pega a lista dos arquivos de um diretório, ordena pelo tamanho em ordem crescente, seleciona as colunas 1, 5 e 9 (permissão, tamanho e nome) e exibe as 10 últimas linhas, ou seja, os 10 maiores arquivos. (pode parecer um exemplo ingênuo, mas é possível incrementá-lo para adequá-lo às necessidades de cada usuário. % ls -la | sort +4n | awk '{ print $1 " " $5 " " $9 }' | tail -n10 Com isso é possivel construir script bastante complexos, utilizando as ferramentas disponíveis na maior parte das distribuições espalhadas por aí. --------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 16816 assinantes. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** Subject: Re: (linux-br) Vi - Syntax on Eis que em Sexta 18 Janeiro 2002 23:07, eduardo_gushiken@uol.com.br escreveu: > Saudações Lista! > Eu já venho tendo esse problema desde o RH7.1, agora com o 7.2 nada mudou. > Eu já copiei o vimrc para ~/.vimrc, mas quando eu digito syntax on, ou > syntax highlighting, ele diz que o comando não está implementado. Alguma > solução? Use o VIM que e quem tem este suporte. Ponha no seu .bashrc ou no .bash_profile o seguinte alias: alias vi='vim' Assim toda vez que chamar vi ele chama o vim e vc vai ter highlighting. O arquivo example_vimrc.vim deve ser copiado de /usr/share/vim/vim58/ para seu /home com o nome de .vimrc. O mesmo para o example_gvimrc.vim, que sera o .gvimrc do /home. Ele e para o vim na GUI. Edite seu /etc/profile e insira: export TERM="xterm-color" export VIM="/usr/share/vim/vim58/" t+ ************************************** > Para apagar/recortar/copiar/colar > v Marca um bloco (uma área de texto, para copiar ou apagar) > Usar as setas para marcar o bloco > y Copiar bloco marcado com "v" > d Recortar ou Apagar bloco marcado com "v" > p Colar após a linha atual (insere o texto copiado/recortado) > P Colar antes da linha atual Tente também: http://www.edconsultoria.com.br/linux/vi.html Para apagar/recortar/copiar/colar v Marca um bloco (uma área de texto, para copiar ou apagar) Usar as setas para marcar o bloco y Copiar bloco marcado com "v" d Recortar ou Apagar bloco marcado com "v" p Colar após a linha atual (insere o texto copiado/recortado) P Colar antes da linha atual dd Apaga/Recorta a linha sobre o cursor dw Apaga/Recorta a palavra sobre o cursor yy Copia a linha sobre o cursor :n.mcox Insere cópia das lnhas n a m após a linha x :n,my Copiar as linhas n a m []'s Edward Martin Em Terça 17 Julho 2001 11:41, Carlos A Silva escreveu: > Pessoal, > No vi, como eu faço para: > 1) localizar e substituir dentro do texto; > 2) copia e colar; ************************************** Exites algumas formas de se substituir texto no "vi", veja: :1,$ s /procure/troque/g Irá trocar em todas as linhas (1,$) a string "procure" por "troque", o "g" comanda a substituição em todas as ocorrências da linha, caso seja omitido, somente a primeira irá ser substituída. /procure cwtroque O "/procure" irá encontrar a primeira ocorrência da string "procure", o "cwtroque" significa Change Word por "troque", apos tecle ESC para que o vi sai do modo edição, caso necessite trocar outra vez tecle "n" (next) caso queira trocar a palavra encontrada "." (repete o ultimo comando) e sucessivamente. Existe outra forma mais é mais complexa. Deixa pra lá. Espero ter ajudado, []s, Fábio. ************************************** Vi: Registro de Ações --------------------------------------------------------------------- Com o editor de textos vim (VI Improved) é possível colocá-lo em modo de gravação, registrando todas as teclas pressionadas e repetir esta mesma sequência de comandos quantas vezes se desejar. Por exemplo, suponhamos que eu tenha que digitar o meu nome diversas vezes em um mesmo documento. Para isto registro então as teclas digitadas pressionando a tecla , a tecla "q" e em seguida uma letra ou número que irá identificar o registrador onde ficarão armazenadas estas informações. Para encerrar a gravação pressiono novamente a tecla "q" e pronto, toda a sequência ficará gravada no registrador que eu indiquei. Para executar a ação desejada digito @ . Simulemos então todo o processo: q0 Rubens Queiroz de Almeida q @0 Rubens Queiroz de Almeida No exemplo acima selecionei o registrador identificado pelo número "0". Sempre que eu quiser inserir o meu nome em algum ponto do texto basta que eu digite @0. ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] vi: Edição de múltiplos arquivos Data:  Wed, 10 Sep 2003 02:54:49 -0300 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20030910.shtml -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace --------------------------------------------------------------------   vi: Edição de múltiplos arquivos   ================================ O editor de textos vim, padrão em muitas distribuições GNU/Linux, oferece um recurso muito útil para a edição de múltiplos arquivos. É possível dividir a janela de edição em duas, com um arquivo em uma janela e outro arquivo na outra janela. Para ativar o vim neste modo, use:   vim -o arquivo_1.txt arquivo_2.txt Este comando abre as janelas de edição na vertical. Se preferirmos o contrário, as janelas de edição na vertical, devemos fazer:   vim -O arquivo_1.txt arquivo_2.txt A diferença é a diretiva  -o ou -O (letra o grafada em minúsculo e maiúsculo. Uma vez aberto o editor com os dois arquivos, para alternar entre uma janela e outra, digite w w (pressione a tecla e em seguida a tecla w duas vezes). É um recurso extremamente útil, especialmente para quem precisa realizar alterações em um arquivo e ao mesmo tempo confrontá-lo com o arquivo original. Na verdade voce pode editar quantos arquivos quiser desta forma. Eu forneci o nome de dois arquivos, mas voce pode especificar quantos desejar:   vim -o a b c d e f g h irá abrir 8 janelas de edição. Mas isto é para quem é realmente multitarefa. Eu fico só nas duas mesmo :-) ---------------------------------------------------------------               Grupo de Usuários RedHat Brasil                    http://www.rhbr.com.br -------------------------------------------------------------------- SQL - Curso Prático http://novateceditora.com.br/livros/sqlcursopratico/ -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22426 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Edição de múltiplos arquivos Data:  Thu, 11 Sep 2003 02:27:46 -0300 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20030911.shtml -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace --------------------------------------------------------------------   Edição de múltiplos arquivos   ============================ Colaboração: Luiz Fernando Pinto Se abrimos um único arquivo no vim e desejamos editar outro sem precisar sair, podemos proceder da seguinte forma: Para dividir a janela verticalmente é só executar o comando :vs (dois-pontos + v + s). Já horizontalmente, é só executar (  w) n (pressiona-se ctrl+w juntas e depois a tecla n). Para fechar uma janela é só mover para a desejada e digitar :q (dois-pontos q). Para abrir arquivos é só digitar (:e + ). ----------------------------------------------------------------   Dicas de Português   ================== Uma vantagem de se manter uma lista pública é que se aprende muito. Erros de português nas mensagens são identificados no ato, e com isso a gente vai aprendendo. Vou citar apenas dois dos erros mais comuns (e graves): 1. Para maiores informações Isto não existe, você não consegue obter informações maiores a respeito de alguma coisa e sim mais informações. Uma maneira interessante de dizer a mesma coisa é dizer para saber mais consulte, etc. 2. Desapercebido Isto não existe. O correto é despercebido -------------------------------------------------------------------- TCP/IP - Guia de Consulta Rápida http://novateceditora.com.br/guias/tcpip/ -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22427 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] vimdiff Data:  Fri, 12 Sep 2003 02:36:49 -0300 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20030912.shtml -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace --------------------------------------------------------------------   vimdiff   ======= Um outro recurso fantástico do vim, que também utiliza múltiplas janelas, é o comando vimdiff. O comando   vimdiff arquivo1.txt arquivo2.txt irá abrir os dois arquivos, lado a lado, com as diferenças em texto destacado. ----------------------------------------------------------------------   Mecanica   ======== Gostaria de anunciar a publicação, em http://www.rau-tu.unicamp.br/istec do software Mecanica, desenvolvido por Rogério Acquadro, da Unicamp. O software Mecanica realiza a simulação de problemas de mecânica clássica. É escrito em português e tem por objetivo auxiliar estudantes de física a resolver e entender melhor estes problemas. -------------------------------------------------------------------- Mirando Resultados http://novateceditora.com.br/livros/mirando/ -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22439 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Mais dicas de vi Data:  Fri, 24 Oct 2003 02:47:48 -0200 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20031024.shtml --------------------------------------------------------------------          Treinamento JBoss: Arquitetura e Administração                   Campinas: 30 e 31 de outubro                         Mais informações:    http://www.dextra.com.br/servicos/treinamento/jboss/jbarq.htm --------------------------------------------------------------------   Mais dicas de vi   ================ Colaboração: Fernando M. Roxo da Motta Quando se usar :   :s/.../.../[g][c] Estas "/" são delimitadoras de campo.  Os campos são os alvos (a primeira parte) e o destino (a segunda parte, como fica fácil depreender;)).  Se por um acaso o delimitador aparece em qualquer das partes ele terá que ser marcado ("escapado", filtrado) como um não delimitador.   Por isto no exemplo acima apareceu o tal "GNU\/Linux".   Só que esta história pode tornar muito complicada a leitura dos padrões, aumentando a probabilidade de erro.   Por exemplo :   :s/\/usr\/tmp/\/var\/lib\/lixo/g E aí, o que está sendo trocado por o quê ?   Complicado, né ? Bem, a melhor maneira de resolver este embróglio é lembrar que embora normalmente se use a "/" como delimitador, vários outros caracteres podem ter esta função.   Por exemplo, se usarmos o "#" como delimitador acima teremos :   :s#/usr/tmp#/var/lib/lixo#g Que torna muito mais fácil a leitura do comando, certo ?   Logo o exemplo lá de cima poderia ficar :   :s#Linux#GNU/Linux#g Que torna claro o comando a ser executado. E se usando o "#" como delimitador aparecer um "#" no padrão :   :s#/usr/tmp#/var/tmp/usr## Oops !!  Não, para funcionar a lógica é a mesma anterior :   :s#/usr/tmp#/var/tmp/usr\## Ainda fica mais legível um único "escape" (a "\" ) aplicado a um "#" que aplicar naquele monte de "/", certo ?   Mas ainda pode ficar muito melhor :   :s@/usr/tmp@/var/tmp/usr#@ ou   :s+/usr/tmp+/var/tmp/usr#+ Resumindo, existem vários delimitadores possíveis, use aquele que melhor se acerte com os padrões necessários para pesquisa e substituição. -----------------------------------------------------------         Wget: Baixando Sites e Arquivos com Wget         ======================================== http://www.linuxbsd.com.br/phpLinuxBSD/modules/artigos_tecnicos/wget.htm -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22863 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De:  AWK Para:  webmaster Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Pular palavra por palavra com VI, tem como ... Data:  Sun, 26 Oct 2003 10:38:04 -0200 On Fri, 24 Oct 2003 15:33:30 -0200 "webmaster" wrote: > Olá ... > > No Windows quando usamos o Ctrl + a seta para a direita ou para a esquerda > damos um avanço na palavra inteira ... > > Alguém sabe qual comando uso ... para fazer isso no VI. >         No modo comando apenas digite "w" para próxima palavra e "b" para a palavra anterior.         No modo edição, provavelmente existe alguma combinação de teclas, mas eu preferi configurar uma combinação de teclas no meu ~/.vimrc:         " + no modo de edição, pula uma palavra inteira...         imap Ea         " + no modo edição, volta uma palavra inteira ...         imap bi [ ]'s --             ////           ( O O ) =======oOO==(_)==OOo============    Márcio Alexandre S. Mendonça  muthry@ig.com.br  Linux User #298595 ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Mais dicas de vi Data:  Mon, 03 Nov 2003 02:37:59 -0200 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20031103.shtml --------------------------------------------------------------------         Treinamento PostgreSQL: Introdução ao Banco de Dados          ** 10% de desconto para os assinantes da Dicas-L**                   Campinas: 06 e 07 de novembro     http://www.dextra.com.br/servicos/treinamento/pg/pgintro.htm --------------------------------------------------------------------   Mais dicas de vi   ================ Colaboração: Elcio A. Kuhn O comando   g/teste/s//\U&/g significa   'g/teste/' - busca todas as linhas que tenham o string "teste"   s// - substitui o string informado na busca   \U&/ - por maiúsculo (\L para minúsculo). O & representa o string informado na busca   g - indica que a substituição deve ser feita para todas as ocorrência do string em cada linha Em resumo, substitui em todas as linhas do texto, todas as ocorrências do string 'teste' por 'TESTE'. -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22928 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Vim: Edição de Múltiplos Arquivos Data:  Wed, 17 Sep 2003 02:32:07 -0300 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20030917.shtml -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace --------------------------------------------------------------------   Vim: Edição de Múltiplos Arquivos   ================================= Colaboração: Danilo Gonzalez Hashimoto O vim pode ser utilizado para editar múltiplos arquivos, sem a necessidade de se usar janelas, como comentado em mensagens anteriores. Para isto, basta digitar algo como:   vim arquivo1.txt arquivo2.txt arquivo3.txt arquivo4.txt Será aberta uma janela com o conteúdo do arquivo1.txt, porém eu posso navegar entre os diversos arquivos da lista, segundo os comandos abaixo:           :e nomearquivo   ; abre outro arquivo           :ls              ; lista os arquivos abertos           :bn              ; próximo arquivo           :bp              ; arquivo anterior           :b1              ; vai para o primeiro arquivo, ou :b2, :b3, ...   Boletim EAD Links   ================= A equipe EAD do Centro de Computação divulga mensalmente o Boletim EAD Links. Esse Boletim destina-se a informar sobre links relacionados com educação a distância. Para fazer sua inscrição nesta lista visite http://www.ead.unicamp.br/php_ead/cadastro.php -------------------------------------------------------------------- -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22474 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Movimentando Janelas no VIM Data:  Wed, 15 Oct 2003 02:24:12 -0300 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20031015.shtml --------------------------------------------------------------------   Movimentando Janelas no VIM   =========================== Colaboração: Norton R. Pereira Existe um recurso no VIM para modificar o layout de janelas. No caso de se ter mais de uma janela, vertical ou horizontal, cada comando que segue, move a janela corrente para outra posição. Por exemplo, quando existem duas janelas horizontais e o texto que se esta editando esta na janela superior, com o comando CTRL+W J (pressionar "CTRL" mais a letra "W" e após a letra "J")  a janela troca de posição com a que esta na parte inferior da tela. A facilidade para se decorar este comando é que ele segue o padrão (só que em maiúsculo) das teclas de movimentação do VIM: "h", "j", "k", "l".   CTRL+W K - Movimento para o topo da tela.   CTRL+W J - Movimento para o final da tela.   CTRL+W H - Movimento para a parte esquerda da tela.   CTRL+W L - Movimento para a parte direita da tela. Desenvolvimento de software utilizando o Eclipse e ferramentas de software livre Cursos Avançados CEC - IME Calendário Outubro/Novembro - 2003 Info: http://www.cec.ime.usp.br Telefone:11-3091-6191 -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22766 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De: Jorge Godoy Para: Marcio Merlone Cc: linuxisp-br@bazar.conectiva.com.br, linux-br@bazar.conectiva.com.br Assunto: (linux-br) Re: (linuxisp-br) Ajuda com vi ou perl ou sed Data: 24 Feb 2003 16:56:21 -0300 Marcio Merlone writes: > Vamos ver se estou fazendo a lição de casa. Aqui não daria para usar, ou > ficaria melhor utilizar > > unless (($linha == /^$/) or ($linha == /^#/)) { > $linha =~ s/$/ (Cod. $i)/; > $i++; > } > > ,de forma a ficar mais claro? O resultado é o mesmo, mas o operador 'unless' não é tão comum quanto o 'if'. A construção pode ficar duvidosa apenas por este motivo. Prefiro usar o if, a não se que a leitura do código fique mais fluente com o unless. Eu não teria problemas com nenhum dos dois, mas será que todos conseguiriam ler o código mudado? (lembre-se: manutenabilidade do código!) > O que vem a ser "inline"? Acho que gostei disto. Sem criar um novo arquivo, modificando o arquivo diretamente. Alguns também chamam de 'in place'. > Bem, o que vc mandou resolve o problema, mas não mata a sede pelo > conhecimento (Uau!). Estou ainda curioso de como faria isto com o vi > em uma única linha de comando... :-) Com o vi não sei fazer o contador, mas a expressão regular seria a mesma. Sds, -- Godoy. ************************************** De: Marcio Merlone Para: linuxisp-br@bazar.conectiva.com.br Cc: godoy@metalab.unc.edu, linux-br@bazar.conectiva.com.br Assunto: (linux-br) Re: (linuxisp-br) Ajuda com vi ou perl ou sed Data: 24 Feb 2003 17:25:17 -0300 Em Mon, 24 Feb 2003 15:58:36 -0300, Jorge Godoy escreveu: > Marcio Merlone writes: > > > Preciso numerar todas os finais linhas de um arquivo. Vi uma vez um > > exemplo disto com o vi mas não lembro onde nem como. Basicamente: > > > > /^Received: (baby|clobberer) \(/ REJECT > > /^Received:.*cyber/ REJECT > > > > preciso transformar em > > > > /^Received: (baby|clobberer) \(/ REJECT (Cod. 1) > > /^Received:.*cyber/ REJECT (Cod. 2) (...) > Perl: (...) > if (($linha != /^$/) or ($linha != /^#/)) { > $linha =~ s/$/ (Cod. $i)/; > $i++; > } Tio, Este teste não funcionou para mim. Tive que utilizar =~ para ele ignorar linhas em branco e comentarios. No fim ficou assim: #!/usr/bin/env perl # # Adiciona a string "(Cod. Num)" nos finais das linhas. Nao # corresponde ao num. da linha. --- Ignora comentarios iniciados por # '#' e linhas em branco. # use strict; my $hc="/etc/postfix/header_checks"; open(REGRAS_BLOQUEIO, "< $hc") or die "Impossivel abrir o arquivo de entrada: $!\n"; open(NOVO_ARQUIVO, "> $hc.new") or die "Impossivel abrir o arquivo de saida: $!\n"; my $i = 1; foreach my $linha () { printf "."; unless (($linha =~ /^$/) or ($linha =~ /^#/)) { $linha =~ s/$/ (Cod. $i)/; $i++; } print NOVO_ARQUIVO $linha; } Mas ainda estou curioso de como fazer inline E no vi! Se alguém se habilitar! :)) -- Marcio Merlone ************************************** De: Cleber P. de Souza Para: linuxisp-br@bazar.conectiva.com.br Cc: godoy@metalab.unc.edu, linux-br@bazar.conectiva.com.br Assunto: (linux-br) RES: (linuxisp-br) Ajuda com vi ou perl ou sed Data: 24 Feb 2003 17:49:49 -0300 Poderia também ser usado: awk 'BEGIN {IGNORECASE = 1} /REJECT/ {x++; print $0 " (Cod. "x")"} ' header_checks > destino.txt *** ************************************** De: Marcio Merlone Para: linuxisp-br@bazar.conectiva.com.br Cc: godoy@metalab.unc.edu, linux-br@bazar.conectiva.com.br Assunto: (linux-br) Re: (linuxisp-br) Ajuda com vi ou perl ou sed Data: 24 Feb 2003 16:36:29 -0300 Grande Godoy, Em Mon, 24 Feb 2003 15:58:36 -0300, Jorge Godoy escreveu: > Marcio Merlone writes: > > Preciso numerar todas os finais linhas de um arquivo. Vi uma vez um > > exemplo disto com o vi mas não lembro onde nem como. Basicamente: > > > > /^Received: (baby|clobberer) \(/ REJECT > > /^Received:.*cyber/ REJECT > > > > preciso transformar em > > > > /^Received: (baby|clobberer) \(/ REJECT (Cod. 1) > > /^Received:.*cyber/ REJECT (Cod. 2) (...) > Perl: (...) > if (($linha != /^$/) or ($linha != /^#/)) { > $linha =~ s/$/ (Cod. $i)/; > $i++; > } Vamos ver se estou fazendo a lição de casa. Aqui não daria para usar, ou ficaria melhor utilizar unless (($linha == /^$/) or ($linha == /^#/)) { $linha =~ s/$/ (Cod. $i)/; $i++; } ,de forma a ficar mais claro? (...) > Eu poderia ter feito a mudança inline, também ou diretamente da linha > de comandos, mas ficaria menos clara. O que vem a ser "inline"? Acho que gostei disto. Bem, o que vc mandou resolve o problema, mas não mata a sede pelo conhecimento (Uau!). Estou ainda curioso de como faria isto com o vi em uma única linha de comando... -- Marcio Merlone ************************************** De: Jorge Godoy Para: linuxisp-br@bazar.conectiva.com.br Cc: linux-br Assunto: (linux-br) Re: (linuxisp-br) Ajuda com vi ou perl ou sed Data: 24 Feb 2003 15:58:36 -0300 Marcio Merlone writes: > Sernhores, > > Preciso numerar todas os finais linhas de um arquivo. Vi uma vez um > exemplo disto com o vi mas não lembro onde nem como. Basicamente: > > /^Received: (baby|clobberer) \(/ REJECT > /^Received:.*cyber/ REJECT > > preciso transformar em > > /^Received: (baby|clobberer) \(/ REJECT (Cod. 1) > /^Received:.*cyber/ REJECT (Cod. 2) > > A finalidade é permitir que o usuário injustamente bloqueado em um > header-check do postfix possa me dizer qual das regras o está > bloqueando. :) > > Alguém lembra ou tem como fazer isto? Obrigado! Perl: ---------------------------------------------------------------------- #!/usr/bin/env perl # # Adiciona a string "(Cod. número)" nos finais das linhas. Número # corresponde ao número da linha. --- Ignora comentários iniciados por # '#' e linhas em branco. # use strict; open(REGRAS_BLOQUEIO, "< /usr/local/etc/postfix/header_checks") or die "Impossível abrir o arquivo de entrada: $!\n"; open(NOVO_ARQUIVO, "> /usr/local/etc/postfix/header_checks.new") or die "Impossível abrir o arquivo de saída: $!\n"; my $i = 1; foreach my $linha () { if (($linha != /^$/) or ($linha != /^#/)) { $linha =~ s/$/ (Cod. $i)/; $i++; } print NOVO_ARQUIVO $linha; } __END__ ---------------------------------------------------------------------- Dados simples: ---------------------------------------------------------------------- [root@wintermute ~]# cat /usr/local/etc/postfix/header_checks /big@boss.com/ REJECT Virus /prog-br-u.*@bazar/ REJECT Mailing list operation /prog-br-s.*@bazar/ REJECT Mailing list operation /mailing@globalinvest.com.br/ REJECT spam [root@wintermute ~]# perl teste.pl [root@wintermute ~]# cat /usr/local/etc/postfix/header_checks.new /big@boss.com/ REJECT Virus (Cod. 1) /prog-br-u.*@bazar/ REJECT Mailing list operation (Cod. 2) /prog-br-s.*@bazar/ REJECT Mailing list operation (Cod. 3) /mailing@globalinvest.com.br/ REJECT spam (Cod. 4) [root@wintermute ~]# ---------------------------------------------------------------------- Eu poderia ter feito a mudança inline, também ou diretamente da linha de comandos, mas ficaria menos clara. Adapte conforme as tuas necessidades... ;-) Sds, -- Godoy. ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Vim: Exibição de caracteres invisíveis Data:  Fri, 9 Apr 2004 02:51:52 -0300 -------------------------------------------------------------------- Comente esta dica em http://www.Dicas-l.com.br/dicas-l/20040409.php --------------------------------------------------------------------   Vim: Exibição de caracteres invisíveis   ====================================== Um problema frequente que desenvolvedores de sistemas enfrentam é descobrir porque um arquivo de carga a ser inserido em um banco de dados não funcionou como esperado. Geralmente o culpado são os chamados caracteres "invisíveis", que atrapalham todo o processamento. Com o editor vim podemos identificar estes caracteres facilmente. Basta usar a opção   :set list diretamente do editor, ou caso queiramos manter esta opção em todo nosso trabalho, inserindo, no arquivo .vimrc, a diretiva   set list -----------------------------------------------------------         Hardware com que o Google começou         ================================= Em http://web.archive.org/web/19990209043945/google.stanford.edu/googlehardware.html você pode ver uma série de fotos dos equipamentos com que o Google começou. -------------------------------------------------------------------- Aprendendo Java 2 http://novateceditora.com.br/livros/java2/ -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 24446 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br, Diniz Alexandre Daminelli Assunto:  Re: (linux-br)Vi - linha de comando Data:  Thu, 6 May 2004 00:19:41 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Diniz Alexandre Daminelli wrote: >Ola pessoal > >Como posso fazer para abrir um arquivo no vi, colocar um texto nele, > salvar e fechar o arquivo, tudo pela linha de comando? > >Consigo achar o local da inserção do texto com o comando: >vi +/texto arquivo >Mas gostaria de adicionar um texto, salvar e fechar também; como disse >antes, tudo na linha de comando. Use o ed ou o sed -i. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint: ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] vi: Lendo resultado de comandos Data:  Thu, 10 Jun 2004 02:47:46 -0300 -------------------------------------------------------------------- Comente esta dica em http://www.Dicas-l.com.br/dicas-l/20040610.php --------------------------------------------------------------------               Curso: Soluções Técnicas em Zope                14 a 17 de junho, São Paulo       Inscrições: cursos@simplesconsultoria.com.br             Telefone: 011 3067 5935 ---------------------------------------------------------                      Lista PostFix-BR http://listas.softwarelivre.org/mailman/listinfo/postfix-br ---------------------------------------------------------   vi: Lendo resultado de comandos   =============================== Para incluir dentro de um texto editado com o vim o conteúdo de uma página Web, podemos fazer esta leitura diretamente: :r !lynx -dump http://www.dicas-l.com.br/dicas-l/20030811.shtml O comando r indica ao vim que se deseja ler algo, no caso, o que for trazido pelo browser em modo texto lynx. Ao comando lynx foi fornecida uma URL, que será então lida integralmente dentro do comando, já sem a marcação HTML. Basta então fazer alguns pequenos ajustes e pronto. A propósito, esta é a URL de uma das mensagens mais lidas do arquivo da Dicas-L :-) -----------------------------------------------------------   Bogomips: O que é e para que serve   ================================== Colaboração: Alexandre Hautequest Após alguns vários anos de trabalho (e diversão) em Linux, finalmente consegui uma explicação daquele número que alguns insistem em comparar, mas que até então ninguém sabia de onde vinha. Hoje (04.06.2004), Linus explica a origem do BogoMIPS. http://marc.theaimsgroup.com/?l=linux-kernel&m=108636170630513&w=2 ------------------------------------------------------------ Yeah, the bogomips have become too bogus to even be useful these days. Just as a clarification, "bogomips" is really "bogo-timing-events-per-second-multiplied-by-two" (aka "bogotepsmbt"). The "timing event" used to be a "two-instruction loop", which is where the "multiplied-by-two" comes from: at that point the "bogotepsmbt" becomes the number of instructions per second, and that explains the "mips" part of the name. But since it's really used for timing small delay loops, and since the two-instruction loop wasn't very good at that (due to power-usage, SMT issues, frequency changes, you name it), the implementations have sadly started to drift away from using instruction retire as the event they count, and start using a separate counter instead. So 16.44 BogoMIPS these days really implies " ~8MHz timer frequency ". The timer is a lot better from a technical standpoint, but it sure is a hell of a lot less entertaining than the original MIPS thing. Linus -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 24991 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** LOCALIZAR E SBUSTITUIR De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Mais uma dica do editor vi Data:  Tue, 21 Oct 2003 03:39:41 -0200 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20031021.shtml --------------------------------------------------------------------          Treinamento JBoss: Arquitetura e Administração                   Campinas: 30 e 31 de outubro                         Mais informações:    http://www.dextra.com.br/servicos/treinamento/jboss/jbarq.htm --------------------------------------------------------------------   Mais uma dica do editor vi   ========================== Colaboração: Gabriel Armbrust Araujo Constantemente nos deparamos com arquivos texto que necessitam de modificacões. Por exemplo, imagine que esteja criando um texto sobre o Linux e depois de terminá-lo descobre que seria mais justo com a filosofia GNU se substituisse todas as ocorrências de 'Linux' por 'GNU/Linux'. Modificar na mão é dureza né ? Vamos aos atalhos do vi: Entre com dois pontos (:) e :   :s/Linux/GNU\/Linux/g Notacão: o 's' significa substituir o primeiro padrão (Linux) pelo segundo padrão ( GNU/Linux ), mas protegemos o barra '/' com uma contra-barra, como manda os conceitos de expressões regulares. O 'g'  no final indica que faremos em todas as ocorrências. No entanto a linha acima modificaria somente as instâncias de 'Linux' somente naquela linha. Vamos lá:   :1,$s/Linux/GNU\/Linux/g Faz a mesma coisa, mas agora iniciamos na linha 1 até o final do texto ($) . Para facilitar, pode-se usar o comando: :set numbers Que irá enumerar todas as linhas, sendo então fácil demilitar a linha inicial e final da sua substituicão. Mais um exemplo:   :3,5s/Linux/GNU\/Linux/gc Substitui da linha 3 até a 5, todas as ocorrências (g) mas a diferenca é que ele pede confirmacão (c) . Uma mão na roda. -----------------------------------------------------------         Palestra gratuita "Software Livre"         ================================== Palestrante: Prof. Dr. Mário Olímpio de Menezes   Data:   25/10/2003   Horário:  das 8:30 às 9:00 horas - café empresarial de boas vindas             das 9:00 às 10:30 horas - Palestra     Local:  IPEN - Auditório Rômulo Ribeiro Pieroni           Av. Prof. Lineu Prestes, 2.242           Cidade Universitária, São Paulo - SP     Mapa de Acesso: http://www.ipen.br/ensino/mapa/mapa.htm Inscrições: Enviar e-mail para a  Srta. Rosemeire da Silva - email: rosilva@ipen.br com Nome, RG e Nome da Empresa / Instituição, para autorização de entrada na portaria Outras informações pelos telefones 11 3815-6659 e 11 3815-6455 Secretaria da Pós-Graduação Lato Sensu -------------------------------------------------------------------- Simpósio Internacional ISTEC/IEEE em Educação Continuada Avançada: Políticas e Tendências em Formação Continuada em Engenharia         21 e 22 de outubro de 2003 - Unicamp          http://rau-tu.ccuec.unicamp.br/ace -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 22830 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Editando vários arquivos no vim Data:  Sun, 12 Dec 2004 03:40:01 -0300     IV Seminário de Desenvolvimento em Software Livre       Universidade de Brasília, 6 a 10 de dezembro    Pré-inscrições: http://www.sdsl.org.br/inscricoes ------------------------------------------------------------ *** Treinamentos Dextra Sistemas em Campinas e São Paulo *** PostgreSQL: Administração de Banco de Dados (SP)    -  09/12 PHP: Programação com banco de dados (Campinas)      -  13/12 PostgreSQL: Performance Tuning (SP)                 -  16/12 Linux: Fundamentos (Campinas)                       -  16/12 JBoss: Arquitetura e Administração (Campinas)       -  20/12 Linux: Administração de Sistemas (Campinas)         -  22/12              http://www.dextra.com.br/treinamento ------------------------------------------------------------   Editando vários arquivos no vim   =============================== Colaboração: Moesio Medeiros O vim também pode ser utilizado para editar mais de um arquivo ao mesmo tempo. Basta dividir a tela em várias 'janelas'. Para dividir a tela horizontalmente usa-se o comando   :split [nome-do-arquivo] e verticalmente   :vertical No ":split" o nome do arquivo é facultativo, e caso não seja indicado será criada uma janela vazia.  Para criar uma janela vazia com o ":vertical", é necessário o parâmetro "new". Esses comandos podem redividir as janelas sucessivamente, permitindo assim que sejam editados muitos arquivos simultaneamente.  As janelas interagem entre si. Desta forma, pode-se usar comando de copiar linhas ("[quantidade-de-linhas]yy") em uma e colar em outra usando o comando "p" ou "P". O comando "ctrl-w" é o grande todo-poderoso para edição com várias janelas. Seguem algumas coisas que podem ser feitas com ele.   ctrl+w h  mover cursor para a janela a esquerda   ctrl+w j  mover cursor para a janela abaixo   ctrl+w k  mover cursor para a janela acima   ctrl+w l  mover cursor para a janela a direita   ctrl+w t  mover cursor para a janela mais ao topo (top)   ctrl+w b  mover cursor para a janela mais abaixo (bottom)   ctrl+w w  alternar entre janelas   ctrl+w K  mover janela corrente para o topo   ctrl+w H  mover janela corrente para a extrema esquerda   ctrl+w J  mover janela corrente para o rodapé   ctrl+w L  mover janela corrente para a extrema direita   ctrl+w +  aumenta altura da janela corrente   ctrl+w -  diminui altura da janela corrente   ctrl+w _  precedido por um valor numérico, define a altura da janela corrente Alguns comandos são válidos para todas as janelas.   :qall   abandona tudo   :wall   salva tudo   :wqall  salva e abandona tudo   :xall   salva e abandona tudo -------------------------------------------------------------------- Colabore com a Dicas-L. Publique seu comentário sobre esta mensagem em http://www.Dicas-l.com.br/dicas-l/20041212.php -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 26140 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br/dicas-l/ A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, desde que o conteúdo, inclusive esta nota, não sejam modificados. -------------------------------------------------------------------- **************************************