首页 » SEO优化 » vimphpneo技巧_Java 的 Configurando Neovim

vimphpneo技巧_Java 的 Configurando Neovim

访客 2024-12-03 0

扫一扫用手机浏览

文章目录 [+]

这是 Java 程序专用根本举动步伐所必需的。
程序措辞是一种文化,C# 是 IDE 环境所必需的。

不要忘却,请利用 IntelliJ junto com 或 Java é muito bom!
Porém 是一个可以利用 trabalhar 措辞的可靠工具,可以利用 Neovim 的文本编辑器进行大略的措辞编辑。

vimphpneo技巧_Java 的 Configurando Neovim vimphpneo技巧_Java 的 Configurando Neovim SEO优化

是否可以利用 neovim 插件而不该用 intellij?

您可以在代码编辑器和 IDE 的 com GUI 中测试插件和各种操作,也可以在 IDE 中进行映射。
要利用 IDE 的所有待办事项,您须要配置与 Neovim 结合利用的所有映射任务,由于它具有与映射映射功能相同的功能。

vimphpneo技巧_Java 的 Configurando Neovim vimphpneo技巧_Java 的 Configurando Neovim SEO优化
(图片来自网络侵删)

为了利用 Neovim,请决定利用 Java 程序所需的最佳配置。

O que você vai precisarNeovim 0.7+jdtls(Eclipse 措辞做事器)Instalando 操作系统插件

首先,您须要安装 Packer。
利用 Lua 进行紧张配置:

git clone --depth 1 https://github.com/wbthomason/packer.nvim\ ~/.local/share/nvim/site/pack/packer/start/packer.nvim

Com o Packer 安装,vamos 安装primiiramente 操作系统插件。
进行配置lua/plugins.lua并实行以下操作init.lua:

require("plugins")

不须要打包plugins.lua,您可以实例化 Packer 和 colocar,以声明配置 lsp 或 java 所需的插件。

-- instancia o Packerlocal status, packer = pcall(require, "packer")if (not status) then print("Packer is not installed") returnendvim.cmd [[packadd packer.nvim]]-- aqui eu declaro todos os meus pluginspacker.startup(function(use) use 'wbthomason/packer.nvim' -- necessário use 'nvim-treesitter/nvim-treesitter' -- syntax highlighting use 'neovim/nvim-lspconfig' -- provê configurações padrão de lsp use 'hrsh7th/cmp-nvim-lsp' -- auto complete use 'hrsh7th/nvim-cmp' -- auto complete use 'hrsh7th/cmp-buffer' -- auto complete use 'L3MON4D3/LuaSnip' -- provê snippets use 'onsails/lspkind.nvim' -- provê ícones para o lsp use 'mfussenegger/nvim-jdtls' -- plugin com todas as features do jdtlsend)

好的!
菲塔已宣告,将在阿尔基沃、尼奥维姆和罗达·科曼多身上进行演习:PackerSync。
您可以安装和编译操作系统插件声明。

Neovim 配置

与干系操作干系的插件的配置部分。
如果您须要一些必要的文件类型.java,请推举利用 neovim 的 FileType 插件。

这个插件是本地的,可以利用本地化的意大利面ftplugin和本地化的意大利init.lua面java.lua:

$ mkdir ftplugin$ cd ftplugin$ touch java.lua

Abra esse arquivo and iremos iniciar a configuração。

首先将其配置为自动完成字体。
Nesse caso,iremos apenas invocar 作为默认功能实行cmp_nvim_lsppróprio lsp 客户端实行 neovim。

除关照外,主要的信息还有注册信息:didChangeWatchedFilese didChangeConfiguration。

local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())capabilities.workspace = { configuration = true, didChangeWatchedFiles = { dynamicRegistration = true }, didChangeConfiguration = { dynamicRegistration = true }}

一个近似的配置是“保存格式”和键盘映射功能。
请把稳附加功能的定义。

local on_attach = function(client, bufnr) -- Aqui define <Ctrl-x> + <Ctrl-o> para ativar o autocomplete, mas ele irá se ativar quando você digita também vim.api.nvim_buf_set_option(bufnr, 'omnifunc', "v:lua.vim.lsp.omnifunc") vim.api.nvim_create_autocmd("BufWritePre", { group = vim.api.nvim_create_augroup('Format', { clear = true }), buffer = bufnr, callback = function() vim.lsp.buf.format() end }) local bufopts = { noremap = true, silent = true, buffer = bufnr } local opts = { noremap = true, silent = true } vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) vim.keymap.set('n', '<space>K', vim.lsp.buf.signature_help, bufopts) vim.keymap.set('n', 'gt', vim.lsp.buf.type_definition, bufopts) vim.keymap.set('n', '<F2>', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', '<space>f', vim.lsp.buf.format, bufopts) vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)end

与 LSP 的紧张配置干系的部分。

local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')local workspace_dir = "/home/eronads/workspaces/" .. project_namelocal config = { flags = { allow_incremental_sync = true }, -- O comando para invocar o lsp. Eu recomendo seguir o caminho abaixo, através do executável em python cmd = { '/caminho/para/jdtls', -- Na pasta do jdtls terá algumas pastas com configurações específicas do OS. Indique este caminho de acordo com seu OS '-configuration', '/caminho/para/pasta-do-jtdls/config_SEU-OS', -- Para cada projeto, o lsp cria uma pasta com um workspace. Aqui você irá indicar onde irão ficar essas pastas. '-data', workspace_dir },-- A raiz do seu projeto root_dir = require("jdtls.setup").find_root({ 'gradlew', '.git', 'mvnw' }), on_attach = on_attach, capabilities = capabilities,-- Outras configurações, recomendável repetir settings = { java = { signatureHelp = { enabled = true }, contentProvider = { preferred = 'fernflower' }, completion = {-- Se precisar adicionar uma classe para import estático favoriteStaticMembers = { "org.hamcrest.MatcherAssert.assertThat", "org.hamcrest.Matchers.", "org.hamcrest.CoreMatchers.", "org.junit.jupiter.api.Assertions.", "java.util.Objects.requireNonNull", "java.util.Objects.requireNonNullElse", "org.mockito.Mockito." }, filteredTypes = { "com.sun.", "io.micrometer.shaded.", "java.awt.", "jdk.", "sun.", }, }, sources = { organizeImports = { starThreshold = 9999, staticStarThreshold = 9999, }, }, codeGeneration = { -- Instrução para geração de métodos populares toString = { template = "${object.className}{${member.name()}=${member.value}, ${otherMembers}}" }, hashCodeEquals = { useJava7Objects = true, }, useBlocks = true, }, configuration = {-- Indique aqui as versões de java e as pastas onde se encontram runtimes = { { name = "JavaSE-17", path = "/caminho/para/pasta/do/java/17.0.7-tem/", default = true }, } }, }, }}

重新配置 cmp、lsp 并实行 lsp,如下:

local cmp = require 'cmp';local lspkind = require 'lspkind'cmp.setup({ snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end }, mapping = cmp.mapping.preset.insert({ ['C-Space'] = cmp.mapping.complete(), ['<CR>'] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'buffer' }, }), formatting = { format = lspkind.cmp_format({ mode = 'symbol', -- show only symbol annotations maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) before = function(entry, vim_item) return vim_item end }) }})require('jdtls').start_or_attach(config)

救救我吧。
这是 Java 的一部分。

决赛结果

做事启动:

自动完成功能:

我们供应了一些有助于识别类和接口的片段:

诊断:

代码操作(包括 os queridinhos dos javeiros):

配置完成

没有github 的完全配置。

对付 Java 的配置,可以这样配置:

打字稿;JavaScript;视图;反应;去;PHP。

这是 Java 程序专用根本举动步伐所必需的。
程序措辞是一种文化,C# 是 IDE 环境所必需的。

不要忘却,请利用 IntelliJ junto com 或 Java é muito bom!
Porém 是一个可以利用 trabalhar 措辞的可靠工具,可以利用 Neovim 的文本编辑器进行大略的措辞编辑。

是否可以利用 neovim 插件而不该用 intellij?

您可以在代码编辑器和 IDE 的 com GUI 中测试插件和各种操作,也可以在 IDE 中进行映射。
要利用 IDE 的所有待办事项,您须要配置与 Neovim 结合利用的所有映射任务,由于它具有与映射映射功能相同的功能。

为了利用 Neovim,请决定利用 Java 程序所需的最佳配置。

O que você vai precisarNeovim 0.7+jdtls(Eclipse 措辞做事器)Instalando 操作系统插件

首先,您须要安装 Packer。
利用 Lua 进行紧张配置:

git clone --depth 1 https://github.com/wbthomason/packer.nvim\ ~/.local/share/nvim/site/pack/packer/start/packer.nvim

Com o Packer 安装,vamos 安装primiiramente 操作系统插件。
进行配置lua/plugins.lua并实行以下操作init.lua:

require("plugins")

不须要打包plugins.lua,您可以实例化 Packer 和 colocar,以声明配置 lsp 或 java 所需的插件。

-- instancia o Packerlocal status, packer = pcall(require, "packer")if (not status) then print("Packer is not installed") returnendvim.cmd [[packadd packer.nvim]]-- aqui eu declaro todos os meus pluginspacker.startup(function(use) use 'wbthomason/packer.nvim' -- necessário use 'nvim-treesitter/nvim-treesitter' -- syntax highlighting use 'neovim/nvim-lspconfig' -- provê configurações padrão de lsp use 'hrsh7th/cmp-nvim-lsp' -- auto complete use 'hrsh7th/nvim-cmp' -- auto complete use 'hrsh7th/cmp-buffer' -- auto complete use 'L3MON4D3/LuaSnip' -- provê snippets use 'onsails/lspkind.nvim' -- provê ícones para o lsp use 'mfussenegger/nvim-jdtls' -- plugin com todas as features do jdtlsend)

好的!
菲塔已宣告,将在阿尔基沃、尼奥维姆和罗达·科曼多身上进行演习:PackerSync。
您可以安装和编译操作系统插件声明。

Neovim 配置

与干系操作干系的插件的配置部分。
如果您须要一些必要的文件类型.java,请推举利用 neovim 的 FileType 插件。

这个插件是本地的,可以利用本地化的意大利面ftplugin和本地化的意大利init.lua面java.lua:

$ mkdir ftplugin$ cd ftplugin$ touch java.lua

Abra esse arquivo and iremos iniciar a configuração。

首先将其配置为自动完成字体。
Nesse caso,iremos apenas invocar 作为默认功能实行cmp_nvim_lsppróprio lsp 客户端实行 neovim。

除关照外,主要的信息还有注册信息:didChangeWatchedFilese didChangeConfiguration。

local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())capabilities.workspace = { configuration = true, didChangeWatchedFiles = { dynamicRegistration = true }, didChangeConfiguration = { dynamicRegistration = true }}

一个近似的配置是“保存格式”和键盘映射功能。
请把稳附加功能的定义。

local on_attach = function(client, bufnr) -- Aqui define <Ctrl-x> + <Ctrl-o> para ativar o autocomplete, mas ele irá se ativar quando você digita também vim.api.nvim_buf_set_option(bufnr, 'omnifunc', "v:lua.vim.lsp.omnifunc") vim.api.nvim_create_autocmd("BufWritePre", { group = vim.api.nvim_create_augroup('Format', { clear = true }), buffer = bufnr, callback = function() vim.lsp.buf.format() end }) local bufopts = { noremap = true, silent = true, buffer = bufnr } local opts = { noremap = true, silent = true } vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) vim.keymap.set('n', '<space>K', vim.lsp.buf.signature_help, bufopts) vim.keymap.set('n', 'gt', vim.lsp.buf.type_definition, bufopts) vim.keymap.set('n', '<F2>', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', '<space>f', vim.lsp.buf.format, bufopts) vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)end

与 LSP 的紧张配置干系的部分。

local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')local workspace_dir = "/home/eronads/workspaces/" .. project_namelocal config = { flags = { allow_incremental_sync = true }, -- O comando para invocar o lsp. Eu recomendo seguir o caminho abaixo, através do executável em python cmd = { '/caminho/para/jdtls', -- Na pasta do jdtls terá algumas pastas com configurações específicas do OS. Indique este caminho de acordo com seu OS '-configuration', '/caminho/para/pasta-do-jtdls/config_SEU-OS', -- Para cada projeto, o lsp cria uma pasta com um workspace. Aqui você irá indicar onde irão ficar essas pastas. '-data', workspace_dir },-- A raiz do seu projeto root_dir = require("jdtls.setup").find_root({ 'gradlew', '.git', 'mvnw' }), on_attach = on_attach, capabilities = capabilities,-- Outras configurações, recomendável repetir settings = { java = { signatureHelp = { enabled = true }, contentProvider = { preferred = 'fernflower' }, completion = {-- Se precisar adicionar uma classe para import estático favoriteStaticMembers = { "org.hamcrest.MatcherAssert.assertThat", "org.hamcrest.Matchers.", "org.hamcrest.CoreMatchers.", "org.junit.jupiter.api.Assertions.", "java.util.Objects.requireNonNull", "java.util.Objects.requireNonNullElse", "org.mockito.Mockito." }, filteredTypes = { "com.sun.", "io.micrometer.shaded.", "java.awt.", "jdk.", "sun.", }, }, sources = { organizeImports = { starThreshold = 9999, staticStarThreshold = 9999, }, }, codeGeneration = { -- Instrução para geração de métodos populares toString = { template = "${object.className}{${member.name()}=${member.value}, ${otherMembers}}" }, hashCodeEquals = { useJava7Objects = true, }, useBlocks = true, }, configuration = {-- Indique aqui as versões de java e as pastas onde se encontram runtimes = { { name = "JavaSE-17", path = "/caminho/para/pasta/do/java/17.0.7-tem/", default = true }, } }, }, }}

重新配置 cmp、lsp 并实行 lsp,如下:

local cmp = require 'cmp';local lspkind = require 'lspkind'cmp.setup({ snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end }, mapping = cmp.mapping.preset.insert({ ['C-Space'] = cmp.mapping.complete(), ['<CR>'] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'buffer' }, }), formatting = { format = lspkind.cmp_format({ mode = 'symbol', -- show only symbol annotations maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) before = function(entry, vim_item) return vim_item end }) }})require('jdtls').start_or_attach(config)

救救我吧。
这是 Java 的一部分。

决赛结果

做事启动:

自动完成功能:

我们供应了一些有助于识别类和接口的片段:

诊断:

代码操作(包括 os queridinhos dos javeiros):

配置完成

没有github 的完全配置。

对付 Java 的配置,可以这样配置:

打字稿;JavaScript;视图;反应;去;PHP。

关注并回答1领取Java学习资料大礼包!

标签:

相关文章

中站区网站搭建,打造区域发展新引擎

随着互联网技术的飞速发展,网站已成为企业、政府、社会组织展示形象、传播信息、开展业务的重要平台。近年来,中站区积极响应国家战略,大...

SEO优化 2024-12-05 阅读0 评论0

主题网站设计,构建高效信息传递的桥梁

在互联网高速发展的今天,主题网站作为一种新兴的互联网应用形式,以其独特的功能、丰富的内容和便捷的操作方式,赢得了广大用户的喜爱。主...

SEO优化 2024-12-05 阅读0 评论0

中青旅网站设计,引领旅游行业新风尚

随着我国旅游业的蓬勃发展,旅游网站设计成为各大旅行社竞相展示实力的舞台。在这其中,中青旅网站以其独特的魅力和前瞻性的设计理念,赢得...

SEO优化 2024-12-05 阅读0 评论0