VIM工程的编译 / VI的快捷键记录

这篇具有很好参考价值的文章主要介绍了VIM工程的编译 / VI的快捷键记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

VIM工程的编译 / VI的快捷键记录

概述

装了debain12.4, 用VI的时候, 只是简单的用. 感觉不顺手.
去查VI的快捷键, 不同资料虽然说的大概相同,但是细节说的不一样.

就想去看看对应的源码, 看看代码里面怎么说, 毕竟代码是不会骗人的.
没有一个集成环境, 不好看代码. 好多main(), 不知道看哪个…
用IDA看, 是从VimMain()开始的. 由于没有一个舒服的IDE环境来单步, 看着也不方便(最主要的是, 如果不能单步调试, 逻辑是看不出来的).
VIM工程的编译 / VI的快捷键记录,vi,计算机维护,linux,vi

认怂了, 还是得看vi软件本身带的帮助.

笔记

在debian12.4下, 没有vim, 只有vi.

lostspeed@debian12d4x64:~$ type vim
bash: type: vim: 未找到
lostspeed@debian12d4x64:~$ which vim
lostspeed@debian12d4x64:~$ 

lostspeed@debian12d4x64:~$ type vi
vi 已被录入哈希表 (/usr/bin/vi)
lostspeed@debian12d4x64:~$ which vi
/usr/bin/vi

查看vi版本

lostspeed@debian12d4x64:~$ vi --version -a
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled May 04 2023 10:24:44)
Included patches: 1-1378, 1499
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Tiny version without GUI.  Features included (+) or not (-):
+acl               +file_in_path      -mouse_urxvt       -tcl
-arabic            -find_in_path      +mouse_xterm       -termguicolors
+autocmd           +float             +multi_byte        -terminal
-autochdir         -folding           -multi_lang        +terminfo
-autoservername    -footer            -mzscheme          +termresponse
-balloon_eval      +fork()            -netbeans_intg     +textobjects
-balloon_eval_term -gettext           +num64             -textprop
-browse            -hangul_input      -packages          -timers
++builtin_terms    +iconv             +path_extra        +title
-byte_offset       +insert_expand     -perl              -toolbar
-channel           -ipv6              -persistent_undo   +user_commands
+cindent           -job               -popupwin          -vartabs
-clientserver      +jumplist          -printer           +vertsplit
-clipboard         -keymap            -profile           +vim9script
+cmdline_compl     -lambda            -python            -viminfo
+cmdline_hist      -langmap           -python3           +virtualedit
+cmdline_info      -libcall           -quickfix          +visual
+comments          -linebreak         -reltime           +visualextra
-conceal           +lispindent        -rightleft         +vreplace
-cryptv            +listcmds          -ruby              +wildignore
-cscope            +localmap          +scrollbind        +wildmenu
+cursorbind        -lua               -signs             +windows
-cursorshape       -menu              +smartindent       +writebackup
-dialog            -mksession         -sodium            -X11
-diff              +modify_fname      -sound             +xfontset
-digraphs          +mouse             -spell             -xim
-dnd               -mouseshape        -startuptime       -xpm
-ebcdic            -mouse_dec         -statusline        -xsmp
-emacs_tags        -mouse_gpm         -sun_workshop      -xterm_clipboard
-eval              -mouse_jsbterm     -syntax            -xterm_save
+ex_extra          -mouse_netterm     +tag_binary        
-extra_search      +mouse_sgr         -tag_old_static    
-farsi             -mouse_sysmouse    -tag_any_white     
   system vimrc file: "/etc/vim/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wdate-time -g -O2 -ffile-prefix-map=/build/vim-JA6Vy9/vim-9.0.1378=. -fstack-protector-strong -Wformat -Werror=format-security -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -DTINY_VIMRC -DSYS_TINYRC_FILE=\"/etc/vim/vimrc.tiny\" -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 
Linking: gcc -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lselinux -lacl -lattr 

可以看到debian12.4中用的VI就是VIM, 版本为 vim9.0-1499
去下载vim源码 https://github.com/vim/vim.git
迁出到本地, 切到9.0-1499版本
VIM工程的编译 / VI的快捷键记录,vi,计算机维护,linux,vi

工程的编译

参考 INSTALLpc.txt

工程的编译 - 命令行vim

打开vs2019本地x64命令行
cd /d D:\3rd_prj\text_edtor\vim\src
nmake -f .\Make_mvc.mak

VIM工程的编译 / VI的快捷键记录,vi,计算机维护,linux,vi
VIM工程的编译 / VI的快捷键记录,vi,计算机维护,linux,vi

工程的编译 - GUI版vim

打开vs2019本地x64命令行
cd /d D:\3rd_prj\text_edtor\vim\src
nmake -f .\Make_mvc.mak GUI=yes

VIM工程的编译 / VI的快捷键记录,vi,计算机维护,linux,vi
VIM工程的编译 / VI的快捷键记录,vi,计算机维护,linux,vi

备注

看了vim的Make_mvc.mak的历史记录, 人家真是手写出来的.

现在VS2017, VS2019只支持CMake的模板工程, 已经不支持MakeFile(nmake)的工程向导模板了.
如果是老工程, 只能用nmake来编译Makefile.mk, 在源码工程中单步就成问题了.

如果有刚需, 可以自己按照Make_mvc.mak的包含关系, 构造一个VS的工程.
如果只是想玩一玩, 花这个时间就不值当了.

VIM的帮助文件位置

\vim\runtime\doc\ *.txt 都是帮助文件相关的.
进入vim中, 按F1 或者 :help 显示的都是 \vim\runtime\doc\ *.txt

vim各种快捷键, 看着头疼, 还是简单的用一下吧.

VIM官方教程

将 vim\vimtutor.bat 拷贝到 vim\src\vimtutor.bat
运行 vim\src\vimtutor.bat, 就出现教程
VIM工程的编译 / VI的快捷键记录,vi,计算机维护,linux,vi
按照教程走, 30分钟就能初步使用vim.

这个教程挺好的, 就是看着教程走, 按照教程操作看到的教程文本, 很自然, 在使用中学习vim的使用.
这个教程的目的是让使用者将vim当作普通编辑器来用.

vim 常用快捷键

将教程中说的, 摘录一下. 觉得不适合自己现状的操作, 就不摘录了.

vi中的单词使用空格分开的, 对于中文连在一起, 是算一个单词的.
对于中文文档, 最好不要按照单词来操作. 删掉一个单词, 就等于删掉了一句话

启动vi时, 指定要编辑哪个文件

vi xx_file.txt

正常模式

不管处于任何模式, 只要按一下ESC键, 就回到了正常模式.
只有在正常模式下, 才可以输入命令来让vim干活.

光标的移动

hjkl 这4个键管着上下左右移动的光标移动, 不用死记, 如果移动方向不是自己想要的, 就这4个键, 自己试试就行, 直到可以将光标移动到自己想要的位置.

退出不保存

:q!

退出保存

:wq

只保存不退出

:w

另存到指定文件

:w file_save_to

移动到行首

0

移动到行尾

$

删除一个字符

x

删除单词

移动光标到单词的首字母, 然后按下 dw

删除到单词结尾

de

删除到行尾

d$

删除整行(剪切整行到剪贴板)

dd

在本行的下面一行粘贴

p

删除N行

Ndd

撤销(undo)

u

重做(redo)

CTRL + R

进入插入模式

i

替换一个字符

先输入r, 进入替换模式, 然后输入一个字符后, 替换了原来的字符, 自动进入正常模式

进入附加模式

a

从当前光标开始删除到单词尾部, 并进入编辑模式

ce
对于中文, 不存在单词这一说, ce就是将光标后的整句话都删除了.
如果不是以空格为分隔的内容, 不要用ce来操作.
如果是中文文章, 就用x就行, 一次就删除一个字符. 如果要删除多个字符, 就Nx

从当前光标开始删除到行尾, 并进入编辑模式

c$

显示当前行列位置

CTRL + G

跳到文件结尾

G

跳到指定行

NG

跳到文件开头

gg

查找时忽略大小写

如果不忽略大小写, 大概率查找时, 找不到东西.
因为我们只知道内容, 不知道内容的大小写. e.g. linux配置文件中的关键字

:set ic

查找(搜索)

:/xx_to_find
n 和 N 是查找下一个, 只是查找方向不同, 一般就用n来查找下一个就行

逆向查找

:?xx_to_find

在查找过程中导航

CTRL + O 回上一个呆过的地方.
CTRL + I 去下一个呆过的地方

匹配括号(大{},中[],小()括号就可以)

%

在VIM界面上, 执行外部命令

:! xx_cmd
e.g. :! dir

复制/粘贴

将光标落在想要复制的内容上.
按下v, 进入拷贝模式, 然后移动光标到想要拷贝的内容结束的地方, 按下y, 进行拷贝.
然后将光标落在想要粘贴的地方, 按下p, 进行粘贴.

显示行号

:set number

备注

VIM的操作命令, 远不止官方教程这么少.
不过官方教程这些操作, 已经让我很烦了.

最多就是用VI在linux下简单编辑一下配置文件, 如果没看官方教程这么多, 用起来不顺手.文章来源地址https://www.toymoban.com/news/detail-822257.html

END

到了这里,关于VIM工程的编译 / VI的快捷键记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vim常用快捷键

    记录经常使用的vim快捷键。 在普通模式下输入 gi ,光标会移动到上次编辑的位置,并立即进入插入模式。 在普通模式下,跳转到光标最近所在的上一个位置( Ctrl+o )或下一个位置( Ctrl+i )。 在普通模式下,递增或递减光标下的数字。 在普通模式下,向上( Ctrl+e )或向

    2024年04月23日
    浏览(75)
  • 5-Linux操作系统 vi/vim编译器

    一、vi编译器介绍   Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因 此可以在其他任何介绍vi的地方都能进一步了解它,Vi也是Linux中最基本的文本编辑器,学会它后,

    2024年02月08日
    浏览(38)
  • Vim快捷键及使用技巧

    ● 普通模式:打开文件时的默认模式,在其他模式下按下ESC键都可返回到该模式。 ● 插入模式:按i/o/a键进入该模式,进行文本编辑操作,不同之处在于插入字符的位置在光标之前还是之后。 ● 命令行模式:普通模式下输入冒号(:)后会进入该模式,在该模式下输入命令

    2024年02月10日
    浏览(38)
  • Vim 光标跳转行尾快捷键

    在Vim中,你可以使用以下方法跳转到文件的末尾: 普通模式下,按下 Shift + G :这会将光标直接跳转到文件的最后一行。 命令模式下,输入 :$ :这会将光标定位到最后一行。 普通模式下,按下 Shift + g ,然后输入行号和 G :这会将光标跳转到指定行号的行,其中行号为文件

    2024年02月15日
    浏览(37)
  • vim多文件切换快捷键设置

    vim中在打开多个文件时,会有多个文件进行切换的需求。按:bn切换到下一个文件,按:bp切换到上一个文件。 为了便捷操作,将切换命令设置成快捷键。 进入/home/yys个人目录下,vim .vimrc进入vimrc文件。 注意:yys是我个人设置的的账号名称,每个人的名称会不一样! 在vimrc文件

    2024年02月12日
    浏览(90)
  • Linux Vim撤销和恢复撤销快捷键

    使用 Vim 编辑文件内容时,经常会有如下 2 种需求: 对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子。 将文件内容恢复之后,经过仔细考虑,又感觉还是刚才修改过的内容更好,想撤销之前做的恢复操作。 基于这 2 种

    2024年04月26日
    浏览(36)
  • 【硬件记录】烽影青轴机械键盘的灯光控制键 如何设置?如何设置键盘 跑马灯特效?附:烽影RGB三代快捷键 | 【SCI】计算机/期刊 论文中的 Preliminaries作为目录,一般表示什么意思?

      李白:任世人厌我、妒我、恨我、爱我、笑我、哭我,我只当风曾来过。   🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌟[2] 2022年度博客之星人工智能领域TOP4🌟   🏅[3] 阿里云社区特邀专家博主🏅   🏆[4] CSDN-人工智能领

    2024年02月02日
    浏览(54)
  • 【vim 学习系列文章 19 -- 映射快捷键调用两个函数 A 和B】

    请阅读 【嵌入式开发学习必备专栏 之 Vim】 在 Vim 中,如果想通过按下 gcm 来调用两个函数,比如 FunctionA 和 FunctionB ,需要先定义这两个函数,然后创建一个映射。这个映射将会在被触发时依次调用这两个函数。 首先,确保 .vimrc 文件中包含了这两个函数的定义,以及一个用

    2024年04月13日
    浏览(62)
  • vim 使用/进行关键字搜索,跳转到下一个搜索结果的快捷键

    在命令行中使用 `/` 或 `?` 向下或向上搜索指定的字符,字符可手动输入 或 粘贴指定寄存器里的字符输入。通过 ` n ` 或 ` N ` 继续 原方向 或 反向跳 转到下一个匹配到的位置。 此外还可以同时进行多个匹配()的搜索,不同匹配项之间使用` | `隔开即可。只要找到满足这

    2024年02月10日
    浏览(73)
  • blender的快捷键记录

    按键 作用 备注 R 旋转物体 移动、旋转或缩放物体时,按下X、Y或Z键:按X、Y或Z轴方向移动、旋转或缩放 S 缩放物体 G 移动物体 TAB键 切换为编辑模式 CTRL + A 弹出应用菜单 物体模式旋转缩放后应用旋转与缩放,再进入编辑模式 SHIFT + 鼠标右键 移动游标位置 SHIFT + D 复制物体

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包