Bash 如何使ALT在gvim中像在vim中一样工作?
我正在尝试适应vim,同样,我现在做得很好,但不幸的是Gvim和vim处理alt键的方式不同 在Vim中,按ALT+任何其他键)与按(ESC+任何其他键)相同。甚至在bash的提示符下使用vi模式(set-ovi) 如果在Gvim中使用相同的快捷方式,则会打印分隔的UTF-8字符 如何禁用 在Vim中,按下(ALT+任何其他键)与按下(ESC+任何其他键)相同。甚至在bash的提示符下使用vi模式(set-ovi) Vim并没有做到这一点,而您的终端做到了——这就是为什么您在该终端的其他程序中看到相同的行为,比如bash。您需要向gvim添加与您期望的终端行为相匹配的行为,而不是从gvim中删除行为 根据您的窗口管理器的不同,您可以映射到所需的操作:Bash 如何使ALT在gvim中像在vim中一样工作?,bash,vim,shortcut,alt-key,Bash,Vim,Shortcut,Alt Key,我正在尝试适应vim,同样,我现在做得很好,但不幸的是Gvim和vim处理alt键的方式不同 在Vim中,按ALT+任何其他键)与按(ESC+任何其他键)相同。甚至在bash的提示符下使用vi模式(set-ovi) 如果在Gvim中使用相同的快捷方式,则会打印分隔的UTF-8字符 如何禁用 在Vim中,按下(ALT+任何其他键)与按下(ESC+任何其他键)相同。甚至在bash的提示符下使用vi模式(set-ovi) Vim并没有做到这一点,而您的终端做到了——这就是为什么您在该终端的其他程序中看
# in .vimrc, or without guards in .gvimrc
if has("gui_running")
map <m-j> (something)
endif
#在.vimrc中,或在.gvimrc中没有防护装置
如果有(“gui_正在运行”)
地图(某物)
恩迪夫
使用映射、nmap、imap。。。取决于您想要的模式
在Vim中,按下(ALT+任何其他键)与按下(ESC+任何其他键)相同。甚至在bash的提示符下使用vi模式(set-ovi)
Vim并没有做到这一点,而您的终端做到了——这就是为什么您在该终端的其他程序中看到相同的行为,比如bash。您需要向gvim添加与您期望的终端行为相匹配的行为,而不是从gvim中删除行为
根据您的窗口管理器的不同,您可以映射到所需的操作:
# in .vimrc, or without guards in .gvimrc
if has("gui_running")
map <m-j> (something)
endif
#在.vimrc中,或在.gvimrc中没有防护装置
如果有(“gui_正在运行”)
地图(某物)
恩迪夫
使用映射、nmap、imap。。。取决于您想要的模式。正如@fred nurk所提到的,基于终端的vim和gvim之间的键映射差异取决于GUI环境(窗口管理器)和终端仿真器的键映射和功能 我还假设您的问题是指“插入模式”问题,所以我会相应地回答 映射gvim键以使其行为更接近vim的一种方法是重新映射每个有问题的键,并禁用菜单键。老实说,这几乎是您在.vimrc中需要的全部内容(接近底部[?]): [编辑以添加菜单栏切换]:
" vim.gtk/gvim: map alt+[hjkl] to normal terminal behaivior
if has("gui_running")
" inoremap == 'ignore any other mappings'
inoremap <M-h> <ESC>h
inoremap <M-j> <ESC>j
inoremap <M-k> <ESC>k
inoremap <M-l> <ESC>l
" uncomment to disable Alt+[menukey] menu keys (i.e. Alt+h for help)
set winaltkeys=no " same as `:set wak=no`
" uncomment to disable menubar
set guioptions -=m
" uncomment to disable icon menubar
set guioptions -=T
" macro to toggle window menu keys
noremap ,wm :call ToggleWindowMenu()<CR>
" function to toggle window menu keys
function ToggleWindowMenu()
if (&winaltkeys == 'yes')
set winaltkeys=no "turn off menu keys
set guioptions -=m "turn off menubar
" uncomment to remove icon menubar
"set guioptions -=T
else
set winaltkeys=yes "turn on menu keys
set guioptions +=m "turn on menubar
" uncomment to add icon menubar
"set guioptions +=T
endif
endfunction
endif
“vim.gtk/gvim:map alt+[hjkl]至正常终端行为
如果有(“gui_正在运行”)
“inoremap=='忽略任何其他映射'
inoremap h
inoremap j
伊诺雷马克
inoremap l
“取消注释以禁用Alt+[menukey]菜单键(即Alt+h以获取帮助)
set winaltkeys=no“与`:set wak=no相同`
“取消注释以禁用菜单栏
设置guioptions-=m
“取消注释以禁用图标菜单栏
设置guioptions-=T
“切换窗口菜单键的宏
noremap,wm:call-ToggleWindowMenu()
“切换窗口菜单键的功能
函数切换WindowMenu()
如果(&winaltkeys==“是”)
设置winaltkeys=no“关闭菜单键
设置GUI选项-=m“关闭菜单栏
“取消注释以删除图标菜单栏
“设置guioptions-=T
其他的
设置winaltkeys=yes“打开菜单键
设置guioptions+=m“打开菜单栏
“取消添加图标菜单栏的注释
“设置guioptions+=T
恩迪夫
端功能
恩迪夫
正如@fred nurk所提到的,基于终端的vim和gvim之间的键映射差异基于GUI环境(窗口管理器)和终端仿真器的键映射和功能
我还假设您的问题是指“插入模式”问题,所以我会相应地回答
映射gvim键以使其行为更接近vim的一种方法是重新映射每个有问题的键,并禁用菜单键。老实说,这几乎是您在.vimrc中需要的全部内容(接近底部[?]):
[编辑以添加菜单栏切换]:
" vim.gtk/gvim: map alt+[hjkl] to normal terminal behaivior
if has("gui_running")
" inoremap == 'ignore any other mappings'
inoremap <M-h> <ESC>h
inoremap <M-j> <ESC>j
inoremap <M-k> <ESC>k
inoremap <M-l> <ESC>l
" uncomment to disable Alt+[menukey] menu keys (i.e. Alt+h for help)
set winaltkeys=no " same as `:set wak=no`
" uncomment to disable menubar
set guioptions -=m
" uncomment to disable icon menubar
set guioptions -=T
" macro to toggle window menu keys
noremap ,wm :call ToggleWindowMenu()<CR>
" function to toggle window menu keys
function ToggleWindowMenu()
if (&winaltkeys == 'yes')
set winaltkeys=no "turn off menu keys
set guioptions -=m "turn off menubar
" uncomment to remove icon menubar
"set guioptions -=T
else
set winaltkeys=yes "turn on menu keys
set guioptions +=m "turn on menubar
" uncomment to add icon menubar
"set guioptions +=T
endif
endfunction
endif
“vim.gtk/gvim:map alt+[hjkl]至正常终端行为
如果有(“gui_正在运行”)
“inoremap=='忽略任何其他映射'
inoremap h
inoremap j
伊诺雷马克
inoremap l
“取消注释以禁用Alt+[menukey]菜单键(即Alt+h以获取帮助)
set winaltkeys=no“与`:set wak=no相同`
“取消注释以禁用菜单栏
设置guioptions-=m
“取消注释以禁用图标菜单栏
设置guioptions-=T
“切换窗口菜单键的宏
noremap,wm:call-ToggleWindowMenu()
“切换窗口菜单键的功能
函数切换WindowMenu()
如果(&winaltkeys==“是”)
设置winaltkeys=no“关闭菜单键
设置GUI选项-=m“关闭菜单栏
“取消注释以删除图标菜单栏
“设置guioptions-=T
其他的
设置winaltkeys=yes“打开菜单键
设置guioptions+=m“打开菜单栏
“取消添加图标菜单栏的注释
“设置guioptions+=T
恩迪夫
端功能
恩迪夫
如何将ALT映射到类似ESC的行为?我已经试过为它绘制地图,但没有成功。我需要将ALT键映射到非正常模式,即使我处于正常或插入模式。我如何做到这一点?我如何将ALT映射到类似ESC的行为?我已经试过为它绘制地图,但没有成功。我需要将ALT键映射到非正常模式,即使我处于正常或插入模式。我该怎么做?