diff options
Diffstat (limited to 'pt-br')
-rw-r--r-- | pt-br/asciidoc-pt.html.markdown | 129 | ||||
-rw-r--r-- | pt-br/c-pt.html.markdown | 2 | ||||
-rw-r--r-- | pt-br/clojure-macros-pt.html.markdown | 2 | ||||
-rw-r--r-- | pt-br/git-pt.html.markdown | 2 | ||||
-rw-r--r-- | pt-br/jquery-pt.html.markdown | 131 | ||||
-rw-r--r-- | pt-br/php-composer-pt.html.markdown | 184 | ||||
-rw-r--r-- | pt-br/ruby-pt.html.markdown | 58 | ||||
-rw-r--r-- | pt-br/tmux-pt.html.markdown | 82 | ||||
-rw-r--r-- | pt-br/vim-pt.html.markdown | 239 |
9 files changed, 779 insertions, 50 deletions
diff --git a/pt-br/asciidoc-pt.html.markdown b/pt-br/asciidoc-pt.html.markdown new file mode 100644 index 00000000..75b3c268 --- /dev/null +++ b/pt-br/asciidoc-pt.html.markdown @@ -0,0 +1,129 @@ +--- +language: asciidoc +contributors: + - ["Ryan Mavilia", "http://unoriginality.rocks/"] +translators: + - ["David Lima", "https://github.com/davelima"] +lang: pt-br +filename: asciidoc-pt.md +--- + +AsciiDoc é uma linguagem de marcação similar ao Markdown e pode ser +usada para qualquer coisa, de livros até blogs. Criada em 2002 por +Stuart Rackham, a linguagem é simples mas facilita muito a customização. + +Cabeçalho do documento + +Cabeçalhos são opcionais e não podem conter linhas em branco. +Devem estar separados do conteúdo com pelo menos uma linha em branco. + +Apenas Título + +``` += Título do documento + +Primeira sentência do documento. +``` + +Título e Autor + +``` += Título do Documento +Nome Sobrenome <nome.sobrenome@learnxinyminutes.com> + +Início do documento. +``` + +Múltiplos Autores + +``` += Título do Documento +John Doe <john@go.com>; Jane Doe<jane@yo.com>; Black Beard <beardy@pirate.com> + +Início do documento com múltiplos autores. +``` + +Linhas de revisão (requer uma linha de autor) + +``` += Documento V1 +Potato Man <chip@crunchy.com> +v1.0, 2016-01-13 + +Este artigo sobre batatas será divertido. +``` + +Parágrafos + +``` +Você não precisa fazer nada especial para criar um parágrafo. + +Adicione uma linha em branco entre os parágrafos para separá-los. + +Para criar uma linha em branco adicione um + +e você terá uma quebra de linha! +``` + +Formatando texto + +``` +_underscore é itálico_ +*asterisco é negrito* +*_você pode combinar efeitos_* +`use crase para fonte monoespaçada` +`*fonte monoespaçada em negrito*` +``` + +Título de seções + +``` += Nível 0 (Use apenas no cabeçalho do documento) + +== Nível 1 <h2> + +=== Nível 2 <h3> + +==== Nível 3 <h4> + +===== Nível 4 <h5> + +====== Nível 5 <h6> + +======= Nível 6 <h7> + +``` + +Listas + +Para criar uma lista com marcadores use asteriscos. + +``` +* foo +* bar +* baz +``` + +Para criar uma lista númerada use pontos. + +``` +. item 1 +. item 2 +. item 3 +``` + +Você pode criar listas dentro de listas adicionando +asteriscos ou pontos extras em até 5 níveis. + +``` +* foo 1 +** foo 2 +*** foo 3 +**** foo 4 +***** foo 5 + +. foo 1 +.. foo 2 +... foo 3 +.... foo 4 +..... foo 5 +``` diff --git a/pt-br/c-pt.html.markdown b/pt-br/c-pt.html.markdown index 2c274f12..0af553c8 100644 --- a/pt-br/c-pt.html.markdown +++ b/pt-br/c-pt.html.markdown @@ -28,7 +28,7 @@ Funcionam no C89 também. */ // Constantes: #define <palavra-chave> -#definie DAY_IN_YEAR 365 +#define DAY_IN_YEAR 365 //enumerações também são modos de definir constantes. enum day {DOM = 1, SEG, TER, QUA, QUI, SEX, SAB}; diff --git a/pt-br/clojure-macros-pt.html.markdown b/pt-br/clojure-macros-pt.html.markdown index dbc0c25c..d56840e0 100644 --- a/pt-br/clojure-macros-pt.html.markdown +++ b/pt-br/clojure-macros-pt.html.markdown @@ -142,6 +142,8 @@ Você vai querer estar familiarizado com Clojure. Certifique-se de entender tudo (inline-2 (1 + (3 / 2) - (1 / 2) + 1)) ; -> 3 (Na verdade, 3N, desde que o numero ficou convertido em uma fração racional com / +``` + ### Leitura adicional Escrevendo Macros de [Clojure para o Brave e True](http://www.braveclojure.com/) diff --git a/pt-br/git-pt.html.markdown b/pt-br/git-pt.html.markdown index 907892b1..e59ba901 100644 --- a/pt-br/git-pt.html.markdown +++ b/pt-br/git-pt.html.markdown @@ -2,7 +2,7 @@ category: tool tool: git lang: pt-br -filename: LearnGit.txt +filename: LearnGit-br.txt contributors: - ["Jake Prather", "http://github.com/JakeHP"] - ["Leo Rudberg" , "http://github.com/LOZORD"] diff --git a/pt-br/jquery-pt.html.markdown b/pt-br/jquery-pt.html.markdown new file mode 100644 index 00000000..d49bea0f --- /dev/null +++ b/pt-br/jquery-pt.html.markdown @@ -0,0 +1,131 @@ +--- +category: tool +tool: jquery +contributors: + - ["Sawyer Charles", "https://github.com/xssc"] +translators: + - ["Nikolas Silva", "https://github.com/nikolassilva"] +filename: jquery-pt.js +lang: pt-br +--- + +jQuery é uma biblioteca JavaScript que te ajuda a "fazer mais, escrevendo menos". Ela faz com que muitas tarefas comuns em JavaScript sejam mais simples de escrever. jQuery é usado por grandes empresas e desenvolvedores do mundo todo. Ela torna o AJAX, manipulação de eventos, manipulação do DOM, entre outros, mais fácil e rápido. + +Pelo jQuery ser uma biblioteca JavaScript você deve [aprende-lo primeiro](https://learnxinyminutes.com/docs/pt-br/javascript-pt/) + +```js + + +/////////////////////////////////// +// 1. Seletores + +// Seletores no jQuery são usados para selecionar um elemento +var page = $(window); // Seleciona toda a viewport + +// Seletores também podem ser na forma do CSS +var paragraph = $('p'); // Seleciona todos elementos de parágrafo +var table1 = $('#table1'); // Seleciona o elemento com id 'table1' +var squares = $('.square'); // Seleciona todos elementos com classe 'square' +var square_p = $('p.square') // Seleciona todos elementos de parágrafo com a classe 'square' + + +/////////////////////////////////// +// 2. Eventos e Efeitos +// jQuery é muito bom em manipular o que acontece quando um evento é disparado +// Um evento muito usado é o 'ready' +// Você pode usar o método ready para esperar até que um elemento tenha terminado de carregar +$(document).ready(function(){ + // O código não será executado até que o documento carregue +}); +// Você também pode usar funções declaradas +function onAction() { + // Isso será executado quando um evento for disparado +} +$('#btn').click(onAction); // Chama 'onAction' quando o elemento receber um clique + +// Outros eventos comuns são: +$('#btn').dblclick(onAction); // Clique duplo +$('#btn').hover(onAction); // Mouse sobre elemento +$('#btn').focus(onAction); // Elemento recebe foco +$('#btn').blur(onAction); // Elemento perde foco +$('#btn').submit(onAction); // Envio de formulário +$('#btn').select(onAction); // Quando o elemento é selecionado +$('#btn').keydown(onAction); // Quando uma tecla é segurada +$('#btn').keyup(onAction); // Quando uma tecla é solta +$('#btn').keypress(onAction); // Quando uma tecla é pressionada +$('#btn').mousemove(onAction); // Quando o mouse é movido +$('#btn').mouseenter(onAction); // Quando o mouse entra no elemento +$('#btn').mouseleave(onAction); // Quando o mouse sai do elemento + + +// Eles também podem disparar os eventos em vez de manipulá-los, +// simplesmente deixando de passar os parâmetros +$('#btn').dblclick(); // Dispara um clique duplo no elemento + +// Você pode manipular múltiplos eventos usando o seletor apenas uma vez +$('#btn').on( + {dblclick: myFunction1} // Disparado num clique duplo + {blur: myFunction1} // Disparado quando perder o foco +); + +// Você pode mover e esconder elementos com alguns métodos de efeito +$('.table').hide(); // Esconde o elemento + +// Nota: chamar uma função nesse método ainda irá esconder o elemento +$('.table').hide(function(){ + // Elemento é escondido e a função é executada +}); + +// Você pode guardar seletores em variáveis +var tables = $('.table'); + +// Alguns métodos básicos de manipulação do DOM: +tables.hide(); // Esconde elemento(s) +tables.show(); // Exibe elemento(s) +tables.toggle(); // Alterna entre esconder/exibir +tables.fadeOut(); // Efeito fade out +tables.fadeIn(); // Efeito fade in +tables.fadeToggle(); // Alterna entre fade out/in +tables.fadeTo(0.5); // Efeito fade com opacidade específica (entre 0 e 1) +tables.slideUp(); // Efeito de deslize pra cima +tables.slideDown(); // Efeito de deslize pra baixo +tables.slideToggle(); // Alterna entre deslizar pra cima/baixo + +// Todos os métodos acima levam velocidade (em milissegundos) e uma função callback +tables.hide(1000, myFunction); // Esconde o elemento em 1 segundo e chama a função + +// No fadeTo é obrigatório definir a opacidade como segundo parâmetro +tables.fadeTo(2000, 0.1, myFunction); // 2 segundos de fade para 0.1 de opacidade e chama a função + +// Você pode fazer animações mais avançadas com o método animate +tables.animate({'margin-top':"+=50", height: "100px"}, 500, myFunction); +// O método animate leva um objeto com valores CSS, +// um parâmetro de opções para melhorar a animação +// e uma função callback, como de costume + +/////////////////////////////////// +// 3. Manipulação + +// São similares aos efeitos, mas podem fazer mais +$('div').addClass('taming-slim-20'); // Adiciona a classe taming-slim-20 em todas as divs + +// Métodos comuns de manipulação +$('p').append('Hello world'); // Adiciona ao final do elemento +$('p').attr('class'); // Obtém o valor de um atributo +$('p').attr('class', 'content'); // Define o valor de um atributo +$('p').hasClass('taming-slim-20'); // Retorna true se tiver a classe +$('p').height(); // Obtém/define a altura do elemento + + +// Pra maioria dos métodos de manipulação, pegar o valor de um +// elemento só afetará o primeiro deles +$('p').height(); // Obtém a altura da primeira tag 'p' + +// Você pode usar o método each pra percorrer os elementos +var heights = []; +$('p').each(function() { + heights.push($(this).height()); // Adiciona a altura das tags 'p' na array +}); + + +``` diff --git a/pt-br/php-composer-pt.html.markdown b/pt-br/php-composer-pt.html.markdown new file mode 100644 index 00000000..145f5cab --- /dev/null +++ b/pt-br/php-composer-pt.html.markdown @@ -0,0 +1,184 @@ +--- +category: tool +tool: composer +contributors: + - ["Brett Taylor", "https://github.com/glutnix"] +translators: + - ["David Lima", "https://github.com/davelima"] +lang: pt-br +filename: LearnComposer-pt.sh +--- + +[Composer](https://getcomposer.org/) é uma ferramenta de gerenciamento de dependências para PHP. Ele permite que você defina as bibliotecas que seu projeto precisa, e então ele as gerencia (instala/atualiza) para você. + +# Instalando + +```sh +# Instala o binário composer.phar no diretório atual +curl -sS https://getcomposer.org/installer | php +# Se você fizer desta forma, você precisará chamar o composer assim: +php composer.phar about + +# Instala o binário em ~/bin/composer +# Nota: certifique-se de que ~/bin está na variável de ambiente PATH do seu shell +curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filename=composer +``` + +Usuários Windows devem seguir as Instruções de instalação para Windows: +https://getcomposer.org/doc/00-intro.md#installation-windows (EN) + +## Confirmando a instalação + +```sh +# Verifica a versão e lista as opções +composer + +# Para obter ajuda com os comandos +composer help require + +# Verifica se o Composer tem as permissões necessárias e se está atualizado +composer diagnose +composer diag # atalho + +# Atualiza o binário do Composer para a última versão +composer self-update +composer self # atalho +``` + +# Modo de uso + +O Composer armazena as dependências do seu projeto em `composer.json`. +Você pode editar este arquivo, mas é recomendável deixar que o Composer faça isso. + +```sh +# Cria um novo projeto na pasta atual +composer init +# Executa um questionário interativo, te pedindo detalhes sobre o projeto. +# Você pode deixar o questionário em branco, desde que não haja outros projetos dependendo deste. + +# Se um arquivo composer.json já existir, baixa as dependências +composer install + +# Para baixar apenas as dependências de produção, excluindo as de desenvolvimento +composer install --no-dev + +# Adiciona uma dependência de produção ao projeto +composer require guzzlehttp/guzzle +# O Composer se encarrega de verificar qual é a última versão de +# guzzlehttp/guzzle, baixar e adicionar a nova dependência no +# campo 'require' do composer.json + +composer require guzzlehttp/guzzle:6.0.* +# O composer baixa a última versão que combine com o padrão informado (6.0.2, por exemplo) +# e adiciona essa dependência ao campo 'require' do arquivo composer.json + +composer require --dev phpunit/phpunit:~4.5.0 +# O composer irá baixar a dependencia como desenvolvimento, +# usando a versão mais recente >= 4.5.0 e < 4.6.0 + +composer require-dev phpunit/phpunit:^4.5.0 +# O composer irá baixar a dependencia como desenvolvimento, +# usando a versão mais recente >= 4.5.0 e < 5.0 + +# Para mais informações sobre os padrões de versões, veja a +# Documentação sobre Versões do Composer: https://getcomposer.org/doc/articles/versions.md (EN) + +# Para ver quais pacotes estão disopníveis e quais estão instalados +composer show + +# Para ver quais pacotes estão instalados +composer show --installed + +# Para encontrar um pacote que tenha 'mailgun' no nome ou descrição +composer search mailgun +``` + +[Packagist.org](https://packagist.org/) é o repositório principal para pacotes Composer. Pesquise aqui por pacotes existentes. + +## `composer.json` vs `composer.lock` + +O arquivo `composer.json` armazena as preferências de de versão de cada dependência, além de outras informações + +O arquivo `composer.lock` armazena exatamente qual versão foi baixada para cada dependência. Nunca altere este arquivo. + +Se você incluir o arquivo `composer.lock` no seu repositório git, todos os desenvolvedores irão instalar a mesma versão das dependências que você. +Mesmo se uma nova versão for lançada, o Composer baixará apenas a versão salva no arquivo de lock. + +```sh +# Atualizar todas as dependências para a versão mais recente (ainda dentro das preferências definidas) +composer update + +# Para atualizar a versão de uma dependência específica: +composer update phpunit/phpunit + +# Para migrar um pacote para uma nova preferência de versão, você pode precisar +# remover o pacote antigo e suas dependências primeiro +composer remove --dev phpunit/phpunit +composer require --dev phpunit/phpunit:^5.0 + +``` + +## Autoloader + +O Composer cria uma classe autoloader que você pode usar na sua aplicação. +Você pode instanciar as classes pelos seus namespaces. + +```php +require __DIR__ . '/vendor/autoload.php'; + +$mailgun = new Mailgun\Mailgun("key"); +``` + +### Autoloader da PSR-4 + +Você pode adicionar seus próprios namespaces ao autoloader. + +No `composer.json`, adicione um campo 'autoload': + +```json +{ + "autoload": { + "psr-4": {"Acme\\": "src/"} + } +} +``` +Isso irá dizer ao autoloader para buscar na pasta `src` tudo o que estiver no namespace `\Acme\`. + +Você também pode [usar a PSR-0, um mapa de classes ou apenas listar os arquivos para incluir](https://getcomposer.org/doc/04-schema.md#autoload), +e pode usar o campo `autoload-dev` para namespaces de desenvolvimento. + +Ao adicionar ou alterar alguma chave de autoload, você precisará recriar o autoloader + +```sh +composer dump-autoload +composer dump # shorthand + +# Otimiza pacotes PSR-0 e PSR-4 para carregar com mapas de classes também. +# É mais demorado, mas melhora a performance em produção. +composer dump-autoload --optimize --no-dev +``` + +# O cache do Composer + +```sh +# O Composer irá evitar baixar pacotes caso eles estejam no cache. Para limpar o cache: +composer clear-cache +``` + +# Resolução de problemas + +```sh +composer diagnose +composer self-update +composer clear-cache +``` + +## Tópicos (ainda) não falados neste tutorial + +* Criando e distribuindo seus próprios pacotes no Packagist.org ou qualquer lugar +* Hooks Pré- e Pós-: rodar tarefas específicas em determinados eventos do Composer + +### Referências + +* [Composer - O gerenciador de dependências do PHP](https://getcomposer.org/) (EN) +* [Packagist.org](https://packagist.org/) (EN) diff --git a/pt-br/ruby-pt.html.markdown b/pt-br/ruby-pt.html.markdown index eeb51bec..1078f6c5 100644 --- a/pt-br/ruby-pt.html.markdown +++ b/pt-br/ruby-pt.html.markdown @@ -7,6 +7,7 @@ contributors: - ["Jean Matheus Souto", "http://jeanmatheussouto.github.io"] translators: - ["Katyanna Moura", "https://twitter.com/amelie_kn"] + - ["Alan Peterson Carvalho Silva", "https://twitter.com/DemonKart"] --- ```ruby @@ -382,12 +383,65 @@ end Humano.bar # 0 Doutor.bar # nil +--- + +module ModuloDeExemplo + def foo + 'foo' + end +end + +# Incluir (include) módulos conecta seus métodos às instâncias da classe +# Herdar (extend) módulos conecta seus métodos à classe em si + +class Pessoa + include ExemploDeModulo +end + +class Livro + extend ExemploDeModulo +end + +Pessoa.foo # => NoMethodError: undefined method `foo' for Pessoa:Class +Pessoa.new.foo # => 'foo' +Livro.foo # => 'foo' +Livro.new.foo # => NoMethodError: undefined method `foo' + +# Callbacks são executados ao incluir e herdar um módulo + +module ExemploDeConceito + def self.included(base) + base.extend(MetodosDeClasse) + base.send(:include, MetodosDeInstancia) + end + + module MetodosDeClasse + def bar + 'bar' + end + end + + module MetodosDeInstancia + def qux + 'qux' + end + end +end + +class Algo + include ExemploDeConceito +end + +Algo.bar # => 'bar' +Algo.qux # => NoMethodError: undefined method `qux' +Algo.new.bar # => NoMethodError: undefined method `bar' +Algo.new.qux # => 'qux' ``` -## Mais sobre Ruby +## Recursos adicionais -- [Documentação oficial](http://www.ruby-doc.org/core-2.1.1/) - [Aprenda Ruby com desafios](http://www.learneroo.com/modules/61/nodes/338) - Uma coleção de desafios para testar a linguagem. +- [Documentação oficial](http://www.ruby-doc.org/core-2.1.1/) - [Ruby a partir de outras linguagens](https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/) - [Programming Ruby](http://www.amazon.com/Programming-Ruby-1-9-2-0-Programmers/dp/1937785491/)- Um mais antigo [free edition](http://ruby-doc.com/docs/ProgrammingRuby/) e tambem uma versão online disponível. - [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide) - Uma versão colaborativa de um *style-guide* diff --git a/pt-br/tmux-pt.html.markdown b/pt-br/tmux-pt.html.markdown index 9d5bf292..ce3be407 100644 --- a/pt-br/tmux-pt.html.markdown +++ b/pt-br/tmux-pt.html.markdown @@ -9,11 +9,9 @@ lang: pt-br filename: LearnTmux-pt.txt --- -O [tmux](http://tmux.sourceforge.net) -é um multiplexador de terminal, ele permite que terminais sejam criados, -acessados e controlados a partir de uma unica instância. tmux pode ser separado -de uma tela e continuar rodando no plano de fundo e depois ser reacoplado à -instância (ou tela original). +O [tmux](http://tmux.sourceforge.net) é um multiplexador de terminal, +ele permite criar vários terminais e gerenciar tudo na mesma interface. +tmux pode também rodar em background e depois ser recuperado(exibido) novamente. ``` @@ -25,9 +23,9 @@ instância (ou tela original). -n "Janela" # Cria uma janela com o nome "Janela" -c "/dir" # Inícia em uma pasta específica - attach # Reacopla a última seção disponível - -t "#" # Reacopla a seção com nome "#" - -d # Separa (Desacopla) a sessaão de outras instâncias. + attach # Acopla a última seção disponível + -t "#" # Acopla a seção com nome "#" + -d # Separa (Desacopla) a seção de outras instâncias. ls # Lista todas as seções -a # Lista todas as seções abertas @@ -39,56 +37,54 @@ instância (ou tela original). lsp # Lista os painéis -a # Lista todos os painéis -s # Lista todos os painéis em uma seção - -t "#" # Lista os painéis baseado no nome "#" + -t "#" # Lista os painéis chamados "#" - kill-window # Encerrar a janela corrente - -t "#" # Encerrar a janela baseado no nome "#" + kill-window # Encerrar a janela atual + -t "#" # Encerrar a janela chamada "#" -a # Encerrar todas as janelas - -a -t "#" # Encerrar todas as janelas exceto a com nome "#" + -a -t "#" # Encerrar todas as janelas exceto a "#" - kill-session # Encerrar seção corrente + kill-session # Encerrar seção atual -t "#" # Encerrar seção com nome "#" -a # Encerrar todas as seções - -a -t "#" # Encerrar todas as seções exceto a com nome "#" + -a -t "#" # Encerrar todas as seções exceto a "#" ``` - ### Teclas de atalhos (comandos) -A maneira de controllar uma seção tmux acoplada é através de uma -combinação de teclas de prefixo. +As seções tmux acopladas são controladas através de teclas de atalho. (prefix key) ``` ---------------------------------------------------------------------- - (C-b) = Ctrl + b # Combinação de prefixos para usar comandos(atalhos). + (C-b) = Ctrl + b # Abre a opção de receber comandos(atalhos). (M-1) = Meta + 1 -or- Alt + 1 ---------------------------------------------------------------------- ? # Lista todos os comandos. - : # Acessa o lugar (prompt command) para receber comandos do tmux - r # Força a redefiniçao do cliente acoplado. + : # Acessa o prompt command do tmux + r # Força a reinicialização do cliente acoplado. c # Cria uma nova janela. - ! # Retira o painel corrente da janela. - % # Divide o painel corrente em dois para a esquerda e direita. - " # Divide o painel corrente em dois para cima e para baixo. + ! # Retira o painel atual da janela. + % # Divide o painel atual em dois. Esquerda e direita. + " # Divide o painel atual em dois. Para cima e para baixo. - n # Move para a próxima janela. - p # Move para a janela anterior. - { # Troca o painel corrente pelo anterior. + n # Muda para a próxima janela. + p # Muda para a janela anterior. + { # Troca o painel atual pelo anterior. } # Troca o painel corrent pelo posterior. s # Seleciona uma nova seção para o cliente acoplado iterativamente. - w # Seleciona a janela corrente iterativamente. + w # Seleciona a janela atual iterativamente. 0 to 9 # Seleciona a janela de 0 à 9. d # Separa o cliente atual. D # Seleciona um cliente a ser separado. - & # Encerra a janela corrente. - x # Encerra o painel corrente. + & # Encerra a janela atual. + x # Encerra o painel atual. Up, Down # Move para o painel acima, abaixo, a esquerda ou a direita. Left, Right @@ -100,10 +96,10 @@ combinação de teclas de prefixo. # 4) Principal verticamente. # 5) Mosaico - C-Up, C-Down # Altera o tamanho do painel corrente baseado em uma célula. + C-Up, C-Down # Altera o tamanho do painel atual em uma célula. C-Left, C-Right - M-Up, M-Down # Altera o tamanho do painel corrente baseado em cinco células. + M-Up, M-Down # Altera o tamanho do painel atual em cinco células. M-Left, M-Right ``` @@ -116,17 +112,13 @@ Existe um arquivo chamado tmux.conf, ele pode ser usado para definir opções no ``` -# Exemplo de tmux.conf -# 2014.10 +# Exemplo tmux.conf +# 2015.12 ### General ########################################################################### -# Habilita UTF-8 -setw -g utf8 on -set-option -g status-utf8 on - # Limite da história de comandos set -g history-limit 2048 @@ -134,14 +126,14 @@ set -g history-limit 2048 set -g base-index 1 # Mouse -set-option -g mouse-select-pane on +set-option -g -q mouse on # Recarregar o arquivo de configuração sem a necessidade de reiniciar o programa unbind r bind r source-file ~/.tmux.conf -### Teclas de atalho +### Keybinds / Comandos ########################################################################### # Desvincular C-b como prefixo padrão. @@ -150,7 +142,7 @@ unbind C-b # Define um novo prefixo padrão. set-option -g prefix ` -# Definir prefixos que podem ser usados para voltar para a janela anterior. +# Voltar janela anterior quando comando for usado duas vezes. bind C-a last-window bind ` last-window @@ -158,11 +150,11 @@ bind ` last-window bind F11 set-option -g prefix C-a bind F12 set-option -g prefix ` -# Preferencia de teclas de atalho +# Preferencia de comandos setw -g mode-keys vi set-option -g status-keys vi -# Mover enter paineis com teclas de orientaçao do vim +# Alternar enter painéis com teclas de orientaçao do vim bind h select-pane -L bind j select-pane -D bind k select-pane -U @@ -174,7 +166,7 @@ bind f next-window bind E swap-window -t -1 bind F swap-window -t +1 -# Iterar entre os painéis +# Dividir painéis bind = split-window -h bind - split-window -v unbind '"' @@ -184,7 +176,7 @@ unbind % bind a send-prefix -### Theme +### Theme // Estilo ########################################################################### # Paleta de cores para a barra de status @@ -209,8 +201,6 @@ setw -g window-status-bg black setw -g window-status-current-fg green setw -g window-status-bell-attr default setw -g window-status-bell-fg red -setw -g window-status-content-attr default -setw -g window-status-content-fg yellow setw -g window-status-activity-attr default setw -g window-status-activity-fg yellow diff --git a/pt-br/vim-pt.html.markdown b/pt-br/vim-pt.html.markdown new file mode 100644 index 00000000..4f70079a --- /dev/null +++ b/pt-br/vim-pt.html.markdown @@ -0,0 +1,239 @@ +--- +category: tool +tool: vim +contributors: + - ["RadhikaG", "https://github.com/RadhikaG"] +translators: + - ["David Lima", "https://github.com/davelima"] +lang: pt-br +filename: LearnVim-pt.txt +--- + + +[Vim](www.vim.org) +(Vi IMproved - Vi Melhorado) é um clone do editor vi para Unix. Ele é um +editor de texto projetado para ter velocidade e produtividade, e está presente +na maioria dos systemas UNIX. O editor tem um grande número de atalhos de teclado +para agilizar a navegação para pontos específicos no arquivo, além de edição rápida. + +## Navegação do Vim: o básico + +``` + vim <nome-do-arquivo> # Abre <nome-do-arquivo> no vim + :q # Fecha o vim + :w # Salva o arquivo atual + :wq # Salva o arquivo e fecha o vim + :q! # Fecha o vim e descarta as alterações no arquivo + # ! *força* :q a executar, fechando o vim sem salvar antes + :x # Salvar o arquivo e fechao vim (atalho para :wq) + + u # Desfazer + CTRL+R # Refazer + + h # Move o cursor para a esquerda + j # Move o cursor para baixo + k # Move o cursor para cima + l # Move o cursor para a direita + + # Movendo o cursor dentro da linha + + 0 # Move para o início da linha + $ # Move para o final da linha + ^ # Move para o primeiro caractere da linha (ignora caracteres em branco) + + # Pesquisa no texto + + /palavra # Destaca todas as ocorrências de 'palavra' após o cursor + ?palavra # Destaca todas as ocorrências de 'palavra' antes do cursor + n # Move o cursor para a próxima ocorrência após a pesquisa + N # Move o cursor para a ocorrência anterior após a pesquisa + + :%s/foo/bar/g # Substitui 'foo' por 'bar' no arquivo inteiro + :s/foo/bar/g # Substitui 'foo' por 'bar' na linha atual + + # Pulando para caracteres específicos + + f<caracter> # Posiciona o cursor no próximo <caracter> + t<character> # Posiciona o cursor antes do próximo <caracter> + + # Por exemplo, + f< # Posiciona o cursor no < + t< # Posiciona o cursor logo antes do < + + # Movendo por palavras + + w # Move o cursor uma palavra a diante + b # Move o cursor uma palavra atrás + e # Move o cursor ao fim da palavra atual + + # Outros caracteres para mover o cursor no arquivo + + gg # Move para o topo do arquivo + G # Move para o final do arquivo + :NUM # Move para a linha NUM (NUM é qualquer número) + H # Move para o topo da tela visível + M # Move para o meio da tela visível + L # Move para o final da tela visível +``` + +## Modos: + +O Vim é baseado no conceito de **modos**. + +Modo Comando - usado para navegar e escrever comandos - o Vim já inicia nesse modo +Modo Inserção - usado para fazer alterações no arquivo +Modo Visual - usado para destacar textos e executar comandos neles +Modo Ex - usado para ir a linha com ':' no final da tela para executar comandos + +``` + i # Coloca o Vim no Modo Inserção, logo antes do cursor + a # Coloca o Vim no Modo Inserção, logo após o cursor + v # Coloca o Vim no Modo Visual + : # Coloca o Vim no Modo Ex + <esc> # Sai de qualquer modo que você estiver, e coloca o Vim no Modo Comando + + # Copiando e colando texto + + y # Coloca a seleção atual na área de transferência + yy # Coloca a linha atual na área de transferência + d # Deleta a seleção tual + dd # Deleta a linha atual + p # Cola o texto copiado após a posição do cursor + P # Cola o texto copiado antes da posição do cursor + x # Deleta o caractere que está na posição do cursor +``` + +## A 'Gramática' do Vim + +Podemos pensar no Vim como uma série de comendos +em um formato 'Verbo-Modificador-Nome', onde: + +Verbo - sua ação +Modificador - como você executará sua ação +Nome - o objeto onde você vai executar sua acão + +Alguns exemplos importantes de 'Verbos', 'Modificadores' e 'Nomes': + +``` + # 'Verbos' + + d # Apagar (Delete) + c # Alterar (Change) + y # Copiar (Yank) + v # Seleção Visual + + # 'Modificadores' + + i # Dentro (Inside) + a # Em torno de (Around) + NUM # Número (NUM qualquer número) + f # Pesquisa algo e posiciona o cursor acima do resultado + t # Pesquisa algo e posiciona o cursor logo antes do resultado + / # Encontra algo a frente do cursor + ? # Encontra algo antes do cursor + + # 'Nomes' + + w # Palavra (word) + s # Sentência + p # Parágrafo + b # Bloco + + # Exemplos de comandos + + d2w # Apaga 2 palavras + cis # Altera dentro de uma sentência + yip # Coloca o parágrafo atual da área de transferência) + ct< # Altera para '<' + # Altera todo o texto a partir da posição do cursor até o próximo '<' + d$ # Apaga tudo da posição do cursor até o final da linha +``` + +## Alguns atalhos e dicas + + <!--TODO: Adicionar mais!--> +``` + > # Adiciona um bloco de indentação + < # Remove um bloco de indentação + :earlier 15m # Reverte o documento para como ele estava há 15 minutos atrás + :later 15m # Reverte o comando acima + ddp # Troca linhas consecutivas de posição, dd e depois p + . # Repete a última ação +``` + +## Macros + +Macros, basicamente, são ações graváveis. +Quando você começa a gravar uma macro, ele salva **toda** ação e comando +que você usar, até que você pare de gravar. Ao executar uma macro, ele aplica +exatamente a mesma sequencia de ações e comandos na seleção atual. + +``` + qa # Inicia a gravação de uma macro chamado 'a' + q # Para a gravação + @a # Executa a macro +``` + +### Configurando o ~/.vimrc + +O arquivo .vimrc pode ser usado para configurar o Vim no seu início. + +Exemplo de arquivo ~/.vimrc + +``` +" Exemplo de ~/.vimrc +" 2015.10 + +" Obrigatório para rodar apenas no Vim (Vi Improved) +set nocompatible + +" Determina o tipo de arquivo pelo nome para habilitar indentação automática, etc +filetype indent plugin on + +" Habilita sintaxe colorida +syntax on + +" Ativa um 'auto-completar' melhor para a linha de comando +set wildmenu + +" Faz as buscas não diferenciarem maiúsculas-minúsculas (case insensitive) +" Exceto quando você usar letras maiúsculas +set ignorecase +set smartcase + +" Quando criar uma nova linha e a indentação por tipo de arquivo estiver +" desabilitada, mantem a mesma indentação da linha atual +set autoindent + +" Mostra o número das linhas à esquerda +set number + +" Opções de indentação, aqui você pode mudar como preferir + +" Número de espaços visíveis por TAB +set tabstop=4 + +" Número de espaços por TAB ao editar um arquivo +set softtabstop=4 + +" Número de espaços usados nas funções de indentação (>> e <<) +set shiftwidth=4 + +" Converte TABs em espaços +set expandtab + +" Habilita indentação/alinhamento inteligente +set smarttab +``` + +### Referências + +[Vim | Home](http://www.vim.org/index.php) (EN) + +`$ vimtutor pt` + +[Vim: um tutorial/cartilha](https://danielmiessler.com/study/vim/) (EN) + +[O que são as partes sombrias do Vim que sua mãe nunca te explicou? (tópico no Stack Overflow)](http://stackoverflow.com/questions/726894/what-are-the-dark-corners-of-vim-your-mom-never-told-you-about) (EN) + +[Arch Linux Wiki](https://wiki.archlinux.org/index.php/Vim) (EN) |