Martins3 / My-Linux-Config

:clap: Modern neovim configuration based on native lsp
https://martins3.github.io/My-Linux-Config/
GNU General Public License v3.0
335 stars 62 forks source link

这套nvim配置是不支持Windows环境的吧? #70

Closed marryton007 closed 2 years ago

marryton007 commented 2 years ago

我的主要工作环境: Windows + windterm(ssh) + Ubuntu server

使用ccls+nvim在远程ubuntu server上看Kernel源码,非常好用。

因为要写周报,所以想尝试一下orgmode,发现这套配置无论是放在Windows机器上还是远程Ubuntu服务器上,都有许多快捷键无法工作,是不是一定要纯粹的Linux环境才可以使用呢?

谢谢。

Martins3 commented 2 years ago

我没有在 windows 上测试过,应该是需要进行一些修改才可以在 windows 上运行的。

但是在远程 Ubuntu 服务器上应该是可以正确工作的,你可以详细的描述一下你所遇到的问题。

marryton007 commented 2 years ago

比如:快捷键'\a' 就不行

image

还有Ctrl-Space 切换checkbox状态,Ctrl-Space在Windows上默认是切换输入法

在nvim里如何查看当前按键影射? 如果查看当前leader键是哪个?

Martins3 commented 2 years ago

快捷键'\a' 就不行

这个应该是没有问题的,如果你遇到这个问题,是因为 leader a 执行的时候必须在一个 item 上

DeepinScreenshot_select-area_20220622160915

例如

* this is a item <--- cursor 需要在此行才可以,虽然不知道为什么

还有Ctrl-Space 切换checkbox状态,Ctrl-Space在Windows上默认是切换输入法

可以修改 checkout 的快捷键,在 https://github.com/Martins3/My-Linux-Config/blob/master/lua/orgmode-config.lua 中,更多细节可以查看该插件的文档。

在nvim里如何查看当前按键影射?

如果查看当前leader键是哪个?

https://github.com/Martins3/My-Linux-Config/blob/4261552e7038888bc1df378c6ced55472f59e7e7/init.vim#L33

marryton007 commented 2 years ago

抱歉回复晚了,昨晚试了一下,\a还是不行,Ctrl-Space换成了S-Space(我的理解是Shift-Space)也不行,有时间我再试试。

Martins3 commented 2 years ago

因为 leader 键是 , ,所以你尝试过 , a 吗?

marryton007 commented 2 years ago

,a, 不是这个功能了 image

Martins3 commented 2 years ago

,a, 不是这个功能了

这是一个显示 bug,因为这一行的配置 https://github.com/Martins3/My-Linux-Config/blob/4261552e7038888bc1df378c6ced55472f59e7e7/lua/orgmode-config.lua#L29

实际上,,a 的行为在 .org 中的操作并不是 coc code action 的

marryton007 commented 2 years ago

今天换了个环境,使用tabby替换windterm作为ssh客户端, ',a'或'\a' 还是不生效,Shift+Space也不能操作checkbox。

是不是要去掉你提到的 "org_insert_todo_heading = 'a' "

Martins3 commented 2 years ago

我下个 tabby 看看

Martins3 commented 2 years ago

我在 MacOS 上登录远程的 server,在 a.org 文件中,使用 , a,可以得到如下的结果。

https://user-images.githubusercontent.com/16731244/179348689-c8614e25-ee9b-482b-8843-da73811af05d.mov

marryton007 commented 2 years ago

我是用 Windows10 + tabby 远程登录的 ubuntu20.04 我以前稍稍修改过你的配置,见下面的补丁,不知道这些改动有没有影响?

diff --git a/init.vim b/init.vim
index e978dd0..b688c65 100644
--- a/init.vim
+++ b/init.vim
@@ -1,7 +1,8 @@
 " ref: https://www.chrisatmachine.com/Neovim/02-vim-general-settings/
 syntax enable
 " 鼠标可以移动,调整窗口等
-set mouse=a
+" set mouse=a
+set tagfunc=CocTagFunc
 " 超过 window 宽度的行不要折叠
 set nowrap
 " 自动进入到新打开的窗口
diff --git a/lua/plugins.lua b/lua/plugins.lua
index e44677d..9cf1e86 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -56,7 +56,7 @@ require("packer").startup({
     use 'mg979/vim-visual-multi' -- 同时编辑多个位置
     -- c/c++
     use 'jackguo380/vim-lsp-cxx-highlight' -- 为 c/cpp 提供基于 lsp 的高亮
-    use 'skywind3000/vim-cppman' -- http://cplusplus.com/ 和 http://cppreference.com/ 获取文档
+    --use 'skywind3000/vim-cppman' -- http://cplusplus.com/ 和 http://cppreference.com/ 获取文档
     -- 书签
     use 'MattesGroeger/vim-bookmarks'
     use 'tom-anders/telescope-vim-bookmarks.nvim' -- 辅助书签的搜索
@@ -65,12 +65,12 @@ require("packer").startup({
     use 'andymass/vim-matchup' -- 高亮匹配的元素,例如 #if 和 #endif
     -- 时间管理
     use 'nvim-orgmode/orgmode' -- 日程管理
-    use 'wakatime/vim-wakatime' -- 用于统计代码时间
+    -- use 'wakatime/vim-wakatime' -- 用于统计代码时间
     -- latex
-    use 'lervag/vimtex'
+    -- use 'lervag/vimtex'
     -- 其他
     use 'windwp/nvim-spectre' -- 媲美 vscode 的多文件替换
-    use 'CoatiSoftware/vim-sourcetrail' -- sourcetrail 插件
+    --use 'CoatiSoftware/vim-sourcetrail' -- sourcetrail 插件
     use 'tyru/open-browser.vim' -- 使用 gx 打开链接
     use 'h-hg/fcitx.nvim' -- 自动切换输入法
     use 'rmagatti/auto-session' -- 打开 vim 的时候,自动回复上一次打开的样子
diff --git a/vim/misc.vim b/vim/misc.vim
index 042940f..3fe0381 100644
--- a/vim/misc.vim
+++ b/vim/misc.vim
@@ -14,7 +14,7 @@ let g:bookmark_auto_close = 1

 " ctrl + ] 查询 cppman
 " 如果想让该快捷键自动查询 man,将Cppman 替换为 Cppman!
-autocmd FileType c,cpp noremap <C-]> <Esc>:execute "Cppman " . expand("<cword>")<CR>
+"autocmd FileType c,cpp noremap <C-]> <Esc>:execute "Cppman " . expand("<cword>")<CR>

 " 让光标自动进入到 popup window 中间
 let g:git_messenger_always_into_popup = v:true
@@ -63,7 +63,7 @@ let g:vista_finder_alternative_executives = 'ctags'

 let g:floaterm_keymap_prev   = '<C-p>'
 let g:floaterm_keymap_new    = '<C-n>'
-let g:floaterm_keymap_toggle = '<C-t>'
+let g:floaterm_keymap_toggle = '<C-\>'

 " 使用 f/F 来快速移动
 " press <esc> to cancel.

我的配置 https://github.com/marryton007/My-Linux-Config

Martins3 commented 2 years ago

这些和你出现的问题无关。

Martins3 commented 2 years ago

真头痛啊。

Martins3 commented 2 years ago

我一时找不到一个 windows 机器,短期内很难搞。

marryton007 commented 2 years ago

辛苦了,难搞暂时就不搞了。

这里有个问题请教一下,我的配置里如下一句:

set tagfunc=CocTagFunc

这一句是配合ccls来用的,前面一段时间用的好好的,这2天不知道怎么了,感觉不太好使了。最主要的区别就是打开一个C文件的时候,会弹出来一个index界面,这里面的索引总数是不一样的。

第一种方式:index总数是1881

cd drivers/tty
nvim n_tty.c +83

image

第二种方式: index总数量6505

vim drivers/tty/n_tty.c +83

image

我的compile_commands.json文件在内核根目录下。

这2种方式区别在哪里?我个人比较喜欢第1种方式,我记得以前的index总数也是在6000多的,不知道是哪出了问题?这2天也没改过配置。

marryton007 commented 2 years ago

问题解决了,我这整个项目是android源码 。这2天我使用ninja生成了一个compile_commands.json文件,放在Android根目录

Android
|--------compile_commands.json
|--------.ccls-cache
|--------kernel
             |------ compile_commands.json
             |-------.ccls-cache

删除掉Android根目录下的compile_commands.json和.ccls-cache,就不会出现这个问题,但不明白具体原因在哪里?

并且奇怪的是,我Android根目录里compile_commands.json主要是针对art目录。