java - Vim可以直接运行代码吗
大家讲道理
大家讲道理 2017-04-18 09:06:46
0
6
325

最近在尝试使用 Vim,有个问题请教,就

public class test {
    public static void main(String args[]) {
        System.out.print("shit,Test success!");
    }
}

在 Vim 中,我可以直接运行调试吗,像 Sublime 的 cmd+B 一样。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(6)
左手右手慢动作

Selon le sens de la question, après avoir édité le code, appuyez sur une touche de raccourci pour le compiler automatiquement et l'exécuter directement.

Plan

Dans vim, des commandes externes peuvent être exécutées via :!cmd Correspondant au fichier unique écrit par le sujet :

.
:!javac %  #=> 编译, % 为正在编辑的文件名
:!java %:r  #=> 运行, %:r 去掉文件名的后缀

C'est le principe, définissez simplement le mappage des touches ensuite. Dans le .vimrc fichier, ajoutez le contenu suivant

.
autocmd BufNewFile,BufReadPre *.java nmap <leader>rn :!javac %<cr>:!java %:r<cr>

signifie qu'avant de créer ou de lire un fichier .java, le raccourci <leader>rn sera automatiquement mappé à la commande spécifiée

.

Bien sûr, vous pouvez également le définir sur deux touches de raccourci. Il n'est pas recommandé d'utiliser la touche de raccourci Command ici, mais utilisez Leader En fait, le vim du terminal ne peut pas être mappé sur , seulement CommandOui.MacVim

Avancé 1 : Plusieurs fichiers

Il n'y a rien de mal avec plusieurs fichiers. Lorsque

est utilisé, remplacez javac par % et remplacez *.java par le vrai nom du fichier où %:r se trouve main.

Avancé 2 : Projet

Si votre projet a une structure fixe, c'est essentiellement la même

Lors de la compilation, vous pouvez ajouter l'option

pour spécifier le chemin de dépendance et l'option -cp pour spécifier le chemin de sortie. Si vous souhaitez le conditionner sous la forme -d, ajoutez la touche de raccourci. jarVous pouvez définir un fichier de propriétés

dans le répertoire racine du projet pour décrire la structure du projet et les dépendances, puis utiliser le langage

ou le langage .project pour lire le fichier de propriétés, le compiler et le sortir respectivement. , rendez-vous sur VimLRegardez dans l'annuaire, leurs emplacements sont très réguliers python. ~/.m2/Maintenant, vous pouvez mapper les touches aux opérations ci-dessus, qui sont des touches de raccourci

Il y en a beaucoup En plus de

, il y a toutes les lettres et tous les chiffres, et vim plus n'importe quelle longueur de lettres Et. chiffres, Ctrl/Alt/Shift ne suffit pas, ou leader préfixe D'ailleurs, vous préférerez peut-être leader.mapleader. F1-F12

Avancé 3 : Dépendance

OK, vous avez fondamentalement réinventé
, à l'exception de la fonction de téléchargement automatique des dépendances. Mais

a tellement de bibliothèques réseau que je suppose que l'entrepôt de maven devrait être ouvert sur le monde extérieur, à condition que ce soit le cas. en suivant, les protocoles pertinents peuvent être téléchargés. S'il existe une relation de dépendance entre les packages, vous pouvez utiliser python pour écrire un algorithme de traitement des dépendances mvn. pythonBien que

soit comme de la racaille, nous prenons en charge

, VimL, python, il y a toujours une interface linguistique que vous aimez. Quoi que vous trouviez lent, cela n'a pas d'importance, utilisez Ruby. Écrivez-le et transformez-le en une Lua structure. Voyez comment C++ les autres l'implémentent et copiez-le.C/S YCM

Ultime : Achèvement

D'accord, les dépendances de compilation, d'exécution et d'empaquetage ont été résolues, mais il s'agit toujours d'un plug-in de gestion de projet. Il n'y a pas d'achèvement lors de l'écriture
, il y a tellement de

, des noms de méthodes si longs et divers passe-partout. méthodes d'écriture et toutes sortes d'exceptions étranges sont levées, l'écriture manuscriteJavale code est vraiment laborieux et cela demande beaucoup de capacité cérébrale.API

Comment cela peut-il fonctionner ? Nous devons obtenir un plug-in de complétion. VimLe roi de la complétion mondiale YCM n'a été créé qu'après la sortie de Clang, GNU. les données de l'analyse grammaticale ne seront pas partagées. Vous devez écrire vous-même un analyseur grammatical, oui, pour g++..., afin d'effectuer une complétion intelligente.C++

Donc,

Je ne sais vraiment pas ce qui se passe ici, mais Javacela a été fait en 1995, Javacela a été fait en 1991, et ils ont passé 20 ans ensemble. Cela fait des années, et pendant cette période, divers vim ont été exportés, mais je n'ai vu personne se ridiculiser Java IDE.

Pour la complétion fournie par YCM, utilisez Java Cela n'a rien à voir avec eclim YCM fournit simplement une interface YCM peut fonctionner normalement sans eclim. 🎜> Pour utiliser le plug-in, vous devez installer YCM, eclim qui est célèbre pour son open source lent. En d'autres termes, eclipse utilise Java en bas pour le compléter. Ne vous souciez pas de la vitesse de démarrage et de la vitesse d'achèvement super lentes, vous pouvez l'essayer.IDE eclim C'était tout simplement insupportable, alors l'auteur a immédiatement commencé à écrire un analyseur de syntaxe pour eclipse en utilisant

, en en faisant une architecture

et en communiquant avec le serveur dans le plug-in pour le compléter. peut également écrire un backend C++ directement sur Java.C/S YCMOn dit que le nombre de pages de Javanormes de grammaire a dépassé

Mais ce n'est pas grave, il faut créer des difficultés même s'il n'y a pas de difficultés, encore moins il y a des difficultés.

JavaÀ ce stade, j'ai indiqué un chemin vers la spiritualité pour le sujet. Après avoir grimpé sur les épines, vous deviendrez le dieu éternel des mondes C++ et

, et ce sera complètement terminé <.> n'est pas approprié pour écrire la malédiction de

Les disciples des deux factions vous adoreront et vous adoreront pour toujours.vim JavaSi Vim est toujours vivant au moment où vous écrivez ceci..., JavaLa plateforme compte beaucoup de langues frères...

Pourquoi ne dis-tu pas Java, parce que JVMenseigne la vie éternelle !!!

vimPost-scriptumvim

Je déclare par la présente que cet article ne contient aucun ridicule, taquinerie, ridicule ou remise en question du sujet du sujet. Je ne m'excuserai pas si je rends le sujet du sujet mécontent.

Je dis juste ceci, rien n'est impossible pour
, tant que vous avez suffisamment de compétences et de temps. C'est principalement parce que

n'est qu'un éditeur, il ouvre toutes les interfaces ouvertes, vous faites ce que vous voulez. pour ce faire, écrivez simplement un plug-in. Le manuel chinois de

, à part quelques journaux de mise à jour, contient au moins

pages Même si vous finissez de le lire, vous ne pourrez peut-être pas écrire de plug-ins, il faut encore lire le livre. Juste vim J'ai pris une note approximative des 300 premières pages du guide d'utilisation et j'ai pris vim plusieurs lignes de notes. C'était si concis que moi seul pouvais le comprendre.

Habituellement, sur cette problématique, Vim fournit :make interface pour compiler, et makeprg pour définir les paramètres de compilation. Mais il faut aussi admettre qu'au début de la Vim conception, la plupart des conceptions étaient. pour Fabriqué dans un langage compilé comme C, l'objet texte a{ sélectionne le code dans {}, mais pour python, le code de bloc est le même code indenté, sans {}, pour ScalaPour Par exemple, lorsque le bloc n'a qu'une seule instruction, {}.

peut être omis.

Dédié à tous les Vimers qui ont eu du mal à essayer d'écrire Java, n'ayez pas peur, je suis aussi l'un d'entre vous

Vim n'est pas parfait, mais il est meilleur que la plupart des Vimer sosies

.

Je crois que tous ceux qui viennent d'apprendre Vim et ont été impressionnés par le pouvoir de Vim ont essayé de dire quelque chose d'audacieux, Vim在手, 天下我有 Ensuite, ils se sont rencontrés Java au travail et sont tombés dans la douleur de. en faisant semblant. Dans le bourbier, soit j'ai décidé de trouver un autre travail, soit j'ai utilisé IDE. Quand j'ai regardé en arrière, j'ai vu les limites de Vim.

Voir la puissance d'un outil n'est pas comprendre, voir ses limites est une véritable compréhension.

黄色的树林里分出两条路
而我选择了IDE
你呢
Mise à jour

Fichier unique

Compilation et mappage de fichiers, appuyez une seule fois sur Entrée pour réduire les interférencesjava

autocmd BufNewFile,BufReadPre *.java nnoremap <leader>rs :up <bar> !javac % && java %:r<cr>
autocmd BufNewFile,BufReadPre *.java nnoremap <leader>cs :up <bar> !javac %<cr>
En gros, dans le même répertoire, les fichiers de bibliothèque sont compilés avec

, et les fichiers exécutables sont compilés avec <leader>cs. <leader>rsVoici

est l'abréviation de

, la même que rs est run single file.cs compile single file correspond principalement à

et

Vous pouvez utiliser rp pour mapper la compilation et l'exécution des fichiers de projet. cp correspond à :!mvn subcmd.p.

洪涛

N'avez-vous pas vu que test.class a été généré ?


Cela devrait être possible, mais cela nécessite la prise en charge des plug-ins.

左手右手慢动作

Non, vim lui-même n'a pas la fonction de lien de compilateur. On ne sait pas s'il est configurable ou pris en charge par les plug-ins pertinents

Ty80

Bonjour, j'utilise vim pour développer Java. Vous pouvez essayer un plug-in de test unitaire que j'ai écrit pour exécuter des tests
https://github.com/wsdjeg/JavaUnit.vim

.

Bien sûr vous pouvez aussi utiliser ma configuration directement

https://github.com/wsdjeg/DotFiles

左手右手慢动作

Normalement, cela n'est pas possible car vim ne peut pas compiler et générer des fichiers de classe

巴扎黑
map <F4> :"!javac %"<cr>
map <F5> :"!java %<"<cr>

Ajoutez ces deux phrases au fichier de configuration, F4 pour compiler, F5 pour exécuter (notez l'espace après <F4><F5>), bien sûr, le principe est que vous avez installé jdk et configuré les variables d'environnement . Le débogage se sent mal

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal