====== Configuração para Infraestrutura como Código (IaC) ======
Este guia destina-se a profissionais de TI que trabalham com infraestrutura e infraestrutura como código, oferecendo uma configuração personalizada do editor Vim. A configuração foi projetada para maximizar a eficiência e conforto durante longas sessões de codificação, proporcionando integração com ferramentas essenciais como Terraform e Ansible.
**Por que usar esta configuração?**
Utilizar uma configuração otimizada do Vim pode significativamente acelerar seu trabalho diário ao oferecer:
* **Plugins especializados** para gerenciamento de código de infraestrutura.
* **Atalhos personalizados** para navegação rápida e edição de arquivos.
* **Tema visual agradável** para reduzir a fadiga visual e melhorar a concentração.
* **Funções automáticas** que simplificam tarefas repetitivas e mantêm o código limpo e organizado.
**O que está incluído?**
O arquivo ''.vimrc'' apresentado aqui inclui:
* **Plugins para Terraform e Ansible**, que adicionam funcionalidades como formatação automática e destaque de sintaxe específico.
* **NERDTree e fzf**, ferramentas para melhor gerenciamento de arquivos dentro do editor.
* **Tema One Dark**, que oferece uma interface escura e consistente.
* **Configurações e atalhos** projetados para facilitar a edição e o gerenciamento de vários arquivos e janelas.
**Como instalar?**
Para começar a usar esta configuração, copie o conteúdo do arquivo ''.vimrc'' para o seu próprio arquivo ''.vimrc'' localizado no diretório home do seu usuário. Certifique-se de ter o **Vim-Plug** instalado para gerenciar os plugins facilmente. Após a instalação, abra o Vim e execute '':PlugInstall'' para instalar os plugins necessários.
Aqui está um exemplo de configuração ''.vimrc'' personalizada para um profissional de TI focado em infraestrutura e infraestrutura como código, incluindo suporte para plugins úteis, temas visuais e atalhos personalizados:
====== Como Instalar o Vim-Plug em Diferentes Distribuições Linux ======
O Vim-Plug é um gerenciador de plugins leve e poderoso para o Vim, que facilita a instalação e gerenciamento de plugins. Este guia fornece instruções passo a passo sobre como instalar o Vim-Plug em várias distribuições Linux.
==== Instalação no Ubuntu e Debian ====
* **Abra o terminal.**
* **Execute o seguinte comando para baixar e instalar o Vim-Plug:**
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
FIXME Verifique se o diretório ''~/.vim/autoload/'' foi criado e contém o arquivo ''plug.vim''.
==== Instalação no Fedora, CentOS e RHEL ====
* **Abra o terminal.**
* **Instale o cURL com o comando YUM ou DNF (dependendo da versão do Fedora/CentOS):**
sudo dnf install curl
FIXME Use ''sudo yum install curl'' em versões mais antigas
* **Instale o Vim-Plug usando o cURL:**
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
==== Instalação no Arch Linux ====
* **Abra o terminal.**
* **Certifique-se de que o cURL está instalado:**
sudo pacman -S curl
- **Instale o Vim-Plug:**
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
==== Pós-instalação para todas as distribuições ====
Após instalar o Vim-Plug, adicione seus plugins preferidos ao seu arquivo ''.vimrc'' na seção adequada, que começa com ''call plug#begin()'' e termina com ''call plug#end()''. Por exemplo:
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree'
call plug#end()
**Inicie o Vim e execute '':PlugInstall'' para instalar os plugins especificados no seu ''.vimrc''.**
==== Dicas adicionais ====
* **Atualizando plugins**: Abra o Vim e execute `:PlugUpdate`.
* **Verificando o status dos plugins**: Use `:PlugStatus` para ver o status dos plugins instalados.
* **Removendo plugins**: Remova a linha do plugin do `.vimrc`, abra o Vim e execute `:PlugClean` para remover os plugins não utilizados.
Este guia deve ajudar você a configurar o Vim-Plug em diferentes distribuições Linux e a gerenciar seus plugins de Vim de forma eficiente e eficaz.
==== Arquivo .vimrc ====
" vim ~/.vimrc
" Inicialização básica
set nocompatible " Desabilita a compatibilidade com o vi
filetype off " Desativa a detecção de tipo de arquivo
" Gerencie plugins com vim-plug
call plug#begin('~/.vim/plugged')
" Plugins para infraestrutura como código
Plug 'hashivim/vim-terraform'
Plug 'pearofducks/ansible-vim'
" Plugin para gerenciamento de múltiplos arquivos e janelas
Plug 'preservim/nerdtree'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
" Tema visual confortável para longas sessões de codificação
Plug 'joshdick/onedark.vim' " Tema One Dark
call plug#end()
" Configuração de temas e interface
syntax enable " Habilita o destaque de sintaxe
set background=dark " Define o tema como escuro
colorscheme onedark " Aplica o tema One Dark
" Configurações gerais de edição
set number " Mostra números de linha
set smartindent " Indentação inteligente
set tabstop=2 shiftwidth=2 expandtab " Configura tabs e espaços
" Atalhos úteis
map :NERDTreeToggle " Ctrl+n para abrir/fechar o NERDTree
map :Files " Ctrl+f para buscar arquivos com fzf
" Melhorias específicas para Terraform e Ansible
let g:terraform_fmt_on_save = 1 " Formata arquivos Terraform ao salvar
let g:ansible_unindent_after_newline = 1 " Melhora a indentação para Ansible
" Encerramento automático de tags e strings
au FileType html,xml,javascript autocmd BufWritePre %s/\s\+$//e
" Retorna ao último local do cursor ao reabrir o arquivo
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
" Encerra sessão de edição automaticamente ao fechar o Vim
au VimLeave * call system('echo "Sessão encerrada às " . strftime("%c") >> ~/.vim/sessao.log')
Este arquivo `.vimrc` incorpora várias funcionalidades úteis:
* **Plugins para Terraform e Ansible**: Integração direta no Vim para trabalhar com estes arquivos de configuração.
* **NERDTree e fzf**: Ferramentas para navegação e busca de arquivos dentro do editor.
* **Tema One Dark**: Fornece uma interface visual confortável e minimiza a fadiga ocular durante sessões prolongadas.
* **Atalhos e funções personalizadas**: Facilitam a navegação, edição e gerenciamento de janelas.