【LInux】基础开发工具


在这里插入图片描述

vim

命令模式

在 Vim 中,有三个主要的模式:命令模式、插入模式和可视模式。命令模式是默认的模式,用于执行命令和移动光标。
具体命令:
移动光标操作:

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、
「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页

删除文字:

「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行

复制:

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完
成复制与粘贴功能。

替换:

「r」:替换光标所在处的字符。

撤销上一次操作:

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」: 撤销的恢复

更改:

「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字

跳至指定的行:

「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

插入模式

进入插入模式的方式有三种:

  1. i:直接进入插入模式
  2. a进入插入模式之后向后跳一格
  3. o进入插入模式向下跳一行。

底行模式

列出行号:

「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。

跳到文件中的某一行:

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,
再回车,就会跳到文章的第15行。

查找字符:

「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按
「n」会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直
按「n」会往前寻找到您要的关键字为止。
问题:/ 和 ?查找有和区别?操作实验一下

保存文件:

「w」: 在冒号输入字母「w」就可以将文件保存起来

离开vim:

「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

离开vim还有一种方法:shift+zz可以直接退出vim

在底行模式中还可以进行多文件编译:
vs+文件名可以打开多个文件:
在这里插入图片描述
进入之后可以对左右两个文件进行编译,如果还有其他文件还可以加进来。
如何判断我们当期在对哪个文件进行编译呢?光标所在处就是我们编译的文件
如何切换编译的文件呢?shift+ww

vim配置

在vim中,配置文件通常是.vimrc文件,位于用户的主目录中。你可以通过在命令行中输入以下命令来编辑这个文件:

vim ~/.vimrc

下面是一些常见的 vim 配置选项和命令,可以添加到 .vimrc 文件中以定制你的 vim 编辑器体验:

基本配置

" 显示行号
set number

" 启用语法高亮
syntax on

" 设置缩进
set tabstop=4       " 制表符宽度
set shiftwidth=4    " 自动缩进宽度
set expandtab       " 将制表符转换为空格

" 启用智能缩进
set smartindent

" 启用行号相对显示
set relativenumber

" 显示匹配的括号
set showmatch

" 启用行高亮
set cursorline

" 启用搜索高亮
set hlsearch

" 启用增量搜索
set incsearch

" 忽略搜索大小写
set ignorecase
set smartcase

" 启用鼠标
set mouse=a

" 设置显示的命令行高度
set cmdheight=2

" 禁用备份文件
set nobackup
set noswapfile

" 启用持久撤销
set undofile

" 设置剪切板共享
set clipboard=unnamedplus

外观配置

" 设置配色方案
colorscheme desert

" 显示状态栏
set laststatus=2

" 启用自动换行
set wrap

" 设置滚动偏移
set scrolloff=8

" 启用折叠
set foldmethod=syntax
set foldlevel=99

键映射

" 将jj映射为退出插入模式
inoremap jj <Esc>

" 快速保存
nnoremap <C-s> :w<CR>
inoremap <C-s> <Esc>:w<CR>a

" 快速退出
nnoremap <C-q> :q<CR>
inoremap <C-q> <Esc>:q<CR>

插件管理

如果你使用vim-plug作为插件管理器,可以在.vimrc中添加以下内容来管理插件:

  1. 安装vim-plug:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  1. 在.vimrc中添加插件配置:
" 初始化插件管理器
call plug#begin('~/.vim/plugged')

" 示例插件
Plug 'preservim/nerdtree'     " 文件浏览器
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " 模糊查找
Plug 'tpope/vim-fugitive'     " Git 集成
Plug 'airblade/vim-gitgutter' " Git 差异显示
Plug 'dense-analysis/ale'     " 语法检查
Plug 'vim-airline/vim-airline' " 状态栏美化
Plug 'vim-airline/vim-airline-themes' " 状态栏配色方案

" 结束插件管理器
call plug#end()

  1. 重新启动vim,然后运行:PlugInstall来安装插件。
" 自动读取外部修改的文件
set autoread

" 设置文件编码
set encoding=utf-8

" 启用自动补全
set completeopt=menuone,noinsert,noselect

" 启用命令补全
set wildmenu

" 设置分屏
set splitbelow
set splitright

这些配置可以根据你的需求进行调整和扩展。保存 .vimrc 文件后,重新启动 vim 或执行 :source ~/.vimrc 以应用更改。

Linux编译器gcc

首先我们先对C语言的这几个生成可执行程序的这几个过程进行了解:
在这里插入图片描述

  1. 预处理
    在这里插入图片描述
    可以看见,生成了一个.i的文件:
    在这里插入图片描述
  2. 编译
    在这里插入图片描述
    可以看见,生成了一个.s的文件:
    在这里插入图片描述
  3. 汇编(将汇编语言转换成机器码)
    在这里插入图片描述
    形成:
    在这里插入图片描述
  4. 连接
    在这里插入图片描述
    形成:
    在这里插入图片描述
    这就是我们的可执行程序:
    在这里插入图片描述
    可以看见是可以运行的。

函数库

函数库分为静态和动态函数库。
概念:一组预先编写的函数和程序模块的集合,用于提供特定的功能或服务,从而简化开发过程。函数库通过封装常见的操作和功能,使得开发者能够重用已有的代码,减少重复劳动,提高开发效率。

在Linux中:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函数“printf”了,而这也就是链接的作用。

如何查看当前可执行程序依赖哪些库:

ldd 可执行程序

在这里插入图片描述
在这些库当中libbc.so.6就是一个动态库。
如何查看当前可执行文件是动态链接还是静态链接:

file 可执行程序

在这里插入图片描述
可以看见,上面的code就是一个动态链接。
动态链接的优点和缺点:
在这里插入图片描述
如何形成静态链接:
在这里插入图片描述
用gcc编译的时候默认是动态链接,只需要在后面加上一个选项就会变成静态链接,但是我们使用的有些是远程服务器是默认没有静态库的,所以需要下载,只需要用下面指令进行下载即可:

sudo dnf install glibc-static

下载好之后,就不会报错了,可以看见我们形成了一个文件,我们来查看一下这个文件的属性。
在这里插入图片描述
可以看见,则合格文件的属性是静态链接。
静态链接的优点和缺点:
在这里插入图片描述
动态链接和静态链接大小的比较:
在这里插入图片描述
可以很明显的发现,静态链接出来的可执行程序大的多,浪费的资源大得多。

总结

在这篇博客中,我们探讨了两款 Linux 开发工具:vim 和 gcc。作为开发者,掌握这些工具不仅能够提升我们的开发效率,还能使我们在编程过程中更加得心应手。

vim 是一款强大的文本编辑器,以其灵活的操作和广泛的插件支持著称。通过掌握 vim 的基本操作和高级功能,我们可以在编写代码时更加高效,并能够定制出符合自己需求的开发环境。虽然 vim 的学习曲线可能较陡,但一旦熟练掌握,其高效的编辑能力将成为我们不可或缺的利器。

gcc 是 GNU Compiler Collection 的缩写,是 Linux 平台上最常用的编译器之一。它支持多种编程语言,并提供了强大的编译选项和优化功能。通过使用 gcc,我们能够将源代码编译成高效的可执行文件,并对程序进行调试和优化。了解 gcc 的基本用法和编译选项,将帮助我们更好地管理和构建我们的项目。

总之,vim 和 gcc 是 Linux 环境下进行开发的基础工具。掌握它们不仅能够提高我们的生产力,还能为我们的开发工作提供坚实的支持。希望通过这篇博客,能够帮助大家更好地了解和使用这些工具,为后续的开发工作打下良好的基础。继续探索和学习,相信你会发现更多工具和技巧,让你的开发之路更加顺畅。

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值