Introdução

Introdução

Em primeiro lugar, uma palavra de aviso: enquanto os artigos anteriores estavam centrados no iniciante, este artigo é para usuários mais avançados, que já "falam" uma linguagem de programação ou duas e deseja personalizar seu editor para ser ideal para o ideal para o tarefa. Portanto, espera -se que você seja mais ou menos proficiente nas maneiras dos emacs, para poder usá -lo para tarefas diárias e ter a capacidade e o desejo de aprender algo novo. Afinal, será para sua própria recompensa, e suas tarefas de programação se tornarão mais eficientes. Nossa abordagem será adotar alguns idiomas populares, mostrar como configurar o Emacs para o ambiente de desenvolvimento perfeito e depois passar para o próximo idioma. A configuração do EMACS é feita em um dialeto LISP chamado Elisp, mas não se preocupe se você ainda não o souber, vamos lhe dizer o que você precisa.

As línguas

Primeiro, algum fundo. Este artigo é sobre EMACs, não sobre qualquer derivado como MG ou JED que pode ou não oferecer a funcionalidade desejada. Isso porque muitos derivados nasceram da necessidade de criar um emacs menores, já que o original é bem grande, reconhecidamente. Portanto, no processo de remoção da funcionalidade, pode haver apenas alguma funcionalidade que está sendo removida e provavelmente precisaremos aqui. Em suma, apenas emacs. Segundo, os arquivos. Em nossos exemplos, além de personalizar o ~/.Arquivo EMACS, criaremos um diretório chamado ~/.Emacs.d/ onde vamos colocar nossos modos. Assim como o Emacs sabe que tipo de sintaxe destaca, recuo, etc. Para usar para vários tipos de texto, como html, tex, c código -fonte e outros, por meio de modos, podemos adicionar/modificar modos ao nosso gosto, é isso que faremos. Praticamente falando, um modo é um arquivo com um .EXTENSÃO EL (DE ELISP) que será descartada em ~/.Emacs.D, então ~//.Os emacs serão alterados para o editor "saber" sobre a nova extensão. Você verá em alguns momentos, dependendo da rapidez com que você lê.

C/c++

Parece óbvio que começaremos com C, porque é o língua franca de Unix e Linux. O EMACS também é escrito (parcialmente) em C, então há outra razão para você. Embora o Emacs saiba como detectar o idioma em que você está escrevendo, com base na extensão do arquivo, você pode precisar de mais personalização. Em nosso artigo, dissemos que, quando no modo C, os emacs já estão em conformidade com as diretrizes de codificação da GNU sobre guias, indentação e assim por diante. Mas se você deseja contribuir com código para o kernel Linux, a situação muda. Obviamente, você já tem o kernel, tente baixar em algum lugar, mas se não o fizer, aqui está um trecho da documentação/codingstyle (mas se você estiver trabalhando com os caras do kernel, esse arquivo deve estar sob o seu travesseiro):

As guias são 8 caracteres e, portanto, as recortes também são 8 caracteres. Existem movimentos hereticos que tentam fazer recuo 4 (ou mesmo 2!) caracteres de profundidade, e isso é semelhante a tentar definir o valor de Pi como 3. […] A outra questão que sempre aparece no estilo C é a colocação de aparelhos. Ao contrário do tamanho do recuo, existem poucas razões técnicas para escolher uma estratégia de colocação em detrimento da outra, mas da maneira preferida, como mostrado para nós pelos profetas Kernighan e Ritchie, é colocar a cinta de abertura em jogo e colocar o fechamento do fechamento Prepare -se primeiro, assim: se (x é verdadeiro) nós sim 

Então você vê que isso já entra em conflito com a maneira como o Emacs faz coisas por padrão, além de que você queira ter funcionalidade extra, como talvez numeração de linha ou cores diferentes com destaque. Aqui vamos nos. Como já existe um modo C, precisamos apenas personalizá -lo editando ~/.Emacs:

;; É assim que os comentários são usados, mas é melhor ler ;; http: // www.cs.CMU.EDU/CGI-BIN/Info2www?%28elisp%29Comment%20TIPS (SetQ padrão-indent 8) (modo de número 1) (coluna-número 1) (cor-background-cor "Black") (colorido de coluna "vermelho") 

Em relação aos aparelhos de abertura que não estão sendo colocados em sua própria linha, não há nada com que se preocupar: os emacs agirão como você espera se você preferir esse estilo de codificação.

Pitão

Graças a Pedro Kroger, temos uma ideia simples (e queremos compartilhá -la) sobre como configurar seus emacs se você é um desenvolvedor de Python. Escusado será dizer que tudo o que você está lendo aqui está assumindo que você está executando a versão estável mais recente, que é 23.x . Caso contrário, você está por conta própria, pois os problemas de compatibilidade podem surgir.

Muitas distribuições oferecem um Modo Python embalado. No Debian, Gentoo e Derivativos, é chamado Python-Mode, no Fedora, parece que está integrado no pacote Emacs, o Arch o possui sob o nome Emacs-Python-Mode, e o OpenSuse tem a mesma situação que o Fedora. Agora vamos editar ~/.Emacs, então sabe disso, depois de instalá -lo, é claro:

(add-to-list 'carga de carga "~//.Emacs.d ") (requer 'modo python) (add-to-list' Auto-Mode-Alist '(" \\.py \\ '" . modo python)) 

Existem muitos outros modos para Python, embalados ou não, e recomendamos o blog de Pedro para obter mais informações. O Wiki EMACS também é um bom lugar para procurar, não apenas para informações sobre Python, pois é um recurso rico. Com o modo Python, você pode executar o código que acabou de escrever na mesma janela, devido à natureza interpretada da linguagem. Então, depois de abrir/criar/editar seu .arquivo py, tipo C-C ! Para conseguir uma concha python. Volte para a fonte com C-X O, então tipo C-C C-C para que o intérprete ... bem, interprete o conteúdo do buffer. Você pode ver os resultados na parte inferior da janela.

Php

Como, e isso também está disponível para o modo Python acima, várias distribuições tendem a nomear esses modos de maneira diferente, e alguns nem os têm, recomendamos que você economize algum tempo e encontre a página inicial do respectivo modo, salve o .EL ARQUIVO EM ~//.Emacs.D e conte a Emacs sobre isso. No nosso caso, o modo PHP é fácil de encontrar, então faça o download e digite o seguinte em ~//.Emacs:

(add-to-list 'carga de carga "~//.Emacs.d ") ;; observe o ' - não é um erro de digitação! (requer 'modo php) 

Você pode querer adicionar uma terceira linha, assim como a da parte do Python, para que o Emacs use o modo de php sempre que abrir um .arquivo php. Não vamos repetir comandos já mencionados, então agora você sabe o que adicionar ao seu ~//.Arquivo EMACS, apenas nos concentraremos em novas informações. Como falamos em estender os modos existentes, agora que você tem o modo PHP no lugar, veja como estendê -lo dentro ~/.Emacs para codificação específica do Drupal (graças aos caras do Drupal, é claro)

(Defun Drupal-mode () "Drupal PHP-Mode."(interativo) (modo PHP) (Mensagem" Drupal Modo ativado.") (Defina 'TAB-Width 2) (defina' C-Basic-Offset 2) (Definir 'Nil de modo de Tabs-Tabs) (Cree-Label'+) (C-SET-Offset ' arglist-intro '+); para matrizes fapi e dbtng (c-list-math-math); para campos e valores dbtng; mais personalizações específicas de drupal aqui) (configuração de defun-php -Drupal (); Drupal (add-to-list 'Auto-Mode-Alist' ("\\.\\ (módulo \\ | teste \\ | install \\ | tema \\) $ " . modo drupal)) (add-to-list 'Auto-Mode-Alist' ("/Drupal.*\\.\\ (php \\ | inc \\) $ " . modo drupal)) (add-to-list 'Auto-Mode-Alist' ("\\.informação " . modo confunha-windows))) (Configuração-php-drupal) 

Embora na vida real eu possa estar um pouco bagunçado, quando se trata de minhas tarefas relacionadas ao computador, eu gosto do pedido. É por isso que eu colocaria o código acima dentro de um arquivo separado em ~/emacs.D, então diga ~//.emacs como usá -lo. Isso permite que você não bagunçam seu ~/.Arquivo EMACS e instruções específicas de linguagem separadas com as mais genéricas. Por exemplo, como você viu acima, existem círculos C quando você é solicitado a seguir o caminho da guia de 8 caracteres. Mas se eu sou um C e também um programador Python, certamente não gostaria de usar mais nada além de guias de 4 caracteres (consulte o PEP 8 para obter diretrizes de codificação no Python).

SQL

Agora SQL é uma besta um pouco diferente. Ele não tem tantas diretrizes de codificação quanto outras línguas, mas ao mesmo tempo todo fornecedor, comercial (Oracle, Microsoft) ou não (SQLite, Postgres) estende o idioma ANSI com partes específicas. Portanto, um bom modo SQL deve saber como lidar com várias implementações para ser útil. Certo, então, através do mesmo wiki do emacs, encontramos Sqlmode, que aparentemente é exatamente o que queríamos. Sabe Postgres, MySQL, Ingres, DB2, Oracle, Informix e Sybase, apenas para citar alguns. Você pode simplesmente obtê -lo, salve -o e usá -lo. Você também pode dar uma olhada no Lisp mais de ponta: SQL, mas vamos apenas olhar para o SQLMode.

Vamos ao trabalho. Para chegar ao intérprete SQL de uma janela já no modo SQL, faça isso: M-X SQL-SET-SQLI-BUFFER RETURN * SQL * Retorno. O que se segue é um trecho de código muito prático para salvar o histórico separadamente para cada dialeto SQL (e.g. Sybase, mssql, e assim por diante). Para que isso funcione, basta criar um diretório SQL em ~//.Emacs.d, então adicione este gancho a ~/.Emacs:

(Defun My-SQL-Save-History-Hook () (Let ((LVAL '' SQL-INPUPT-RING-FILE-NAME) (RVAL 'SQL-PRODUCT)) (IF (Symbol-Value RVal) (Let ((FileName (concat "~//.Emacs.d/sql/"(símbolo-name (valor do símbolo rval))" -History.sql "))) (set (local-variable lval) nome do arquivo)) (erro (erro" histórico do SQL não será salvo porque %s é nil "(símbolo-name rval))))) (add-gu-gancho 'SQL-Interactive-Mode-Hook' My-Sql-Save-History History 

Outros modos SQL úteis

  • Plsqlmode
  • Sqlindent
  • Sqltransform
  • Sqlplus
  • Sqlreplace

Tudo isso pode ser encontrado usando o wiki do emacs, mas esses não são os únicos. Usar a função de pesquisa do Wiki fará um usuário feliz emacs, pois você encontrará muitos modos práticos.

Conclusão

Estes são apenas alguns dos idiomas que o Emacs suporta, seja pronta para uso ou por extensões. Infelizmente, devido à falta de espaço, a lista acima tinha que ser curta, mas com a riqueza de informações disponíveis on -line, você pode, com um pouco de esforço, encontrar um modo para o seu idioma ou, melhor ainda, aprender a escrever seu ter.

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Mastering Bash Script Loops
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Loops aninhados em scripts de basquete
  • Manipulação de big data para diversão e lucro Parte 1
  • Manjaro Linux vs Arch Linux
  • Ubuntu 20.04 Guia
  • Melhores jogos de terminal no Linux