前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux开发工具:Vim 与 gcc,打造高效编程的魔法双剑

Linux开发工具:Vim 与 gcc,打造高效编程的魔法双剑

作者头像
技匠晓晨
发布于 2024-11-26 01:42:57
发布于 2024-11-26 01:42:57
46300
代码可运行
举报
文章被收录于专栏:C/C++基础到进阶C/C++基础到进阶
运行总次数:0
代码可运行

一、初识Vim

Vim是vi编辑器发展而来的。vi是早期Unix系统中的编辑器,Vim是在vi的增强版,在此基础上添加许多新的功能

  • Vim是一款多模式编辑器,这是它很重要的特性。命令模式、插入模式、底行模式、视图模式、替换模式等等,一共又12种模式,其中最重要的是命令模式、插入模式、底行模式,用于对代码的编辑、提高编写效率、保存退出等功能。
  • Vim这款编辑器中是无法使用鼠标的,其原因之一:熟练使用各种模式下的命令操作,在编辑代码的效率上比VS编译器的效率还要高,例如:在Vim中可以指定光标的位置,一个1000行的代码,在VS编译器中需要不断的滚动光标才查找的了需要的行号,Vim中只需要通过命令指定行号即可跳转。

这里的Vim与我们平时使用的VS2022编译器不一样,VS2022是一款集成开发环境,可以用于,编写代码-调试代码理-编译运行代码。

Linux中:

  • Vim负责对代码的编辑。
  • gdb负责代码的调试
  • gcc/g++负责代码的编译运行

在早期的键盘上,是没有 ↑↓←→的方向键,在Vim中移动光标是通过h、j、k、l这四个按键控制。当然现在Vim也支持使用方向键,但在实际中,并不会使用方向键,在使用上方向将并没有hjkl四个按键顺手。类似于在游戏中我们不会使用方向将来操控角色,而是用wasd来控制方向。

模式

直接输入vim,进入vim的环境查看它版本信息。

额,进去之后别慌,此时vim正处于命令模式,注意观察左下脚的单词 NORMAL,此时的状态指的就是命令模式,又被称为正常模式在命令模式中,输入的任何按键都可以被视为一条指令,当然这条指令是合法的才会生效。在命令模式中输入 Shirt + zz即可退出,别搞错了,英文输入法才会起效果~。

命令模式:normal mode

又称为正常模式,Linux会将输入的所有内容当作为命令,它只识别支持的命令,乱按键盘是没用滴~ ,可以控制光标的移动,代码、字符串、行的复制、粘贴、删除等操作。此模式无法进行编辑

  • 最大意义:提高编辑代码的效率,熟练使用这些指令后,编辑效率比使用鼠标配合键盘快很多。

Windows中,使用 CTRL + c / v进行复制粘贴的快捷方式,实际上是一个指令,和命令模式中的命令操作本质是一样的。

插入模式: insert mode

对文件输入内容,在命令模式中输入 i即可进入,通过ESC可以退出插入模式,切回命令模式。

底行模式:Last line mode

文件保存、退出、查找字符串、列出行号等操作。在命令模式中输入 Shift + ;,通过ESC可以退出底行模式,切回命令模式。


  • 底行模式与插入模式中是无法互相切换的
  • 任何模式下,使用ESc都可以切换到命令模式,而命令模式又可以切换到所有的模式。
  • 命令模式是vim中的精华

二、vim基本操作

安装Vim

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install vim //普通用户
yun install vim //超级用户

2.1基础操作

通过vim打开文件进行编辑

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim [文件名]

刚开始使用Vim进行编辑看见的是这样:

啊,这该怎么玩它,什么按键按下去也没有效果。此时Vim处于命令模式,想要进行代码的编辑,需要输入 i切换到插入模式,左下脚有INSERT的字样,成功进入插入模式。

在插入模式中进行编辑,又发现一些问题,为什么没有快捷输入,报错信息,换行不会自动大四个空格,等等等,放在就是用着变扭

第一次使用的vim是刚出厂的什么内容都还没有进行配置,语法高亮、自动换行等内容,而这些可以通过手动在 vim ~/.vimrc中进行配置,打造属于自己的vim编辑器。.vimrc的配置

在普通账户的加目录中执行一下命令,即可自动配置vim的环境,需要在联网环境运行。[配置Vim环境](VimForCpp: 快速将vim打造成c++ IDE)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

2.2命令模式/正常模式

特点,退出vim前,光标在那一行,再次使用vim进入该文件时,光标还是在哪一行

切换插入模式

命令模式

结果

i

进入插入模式,光标在哪,进入插入模式光标就指向哪

a

进入插入模式,光标在当前位置后移一个位置

o

进入插入模式,光标换到下一行

2.2.1光标定位

上下定位

命令模式

结果

gg

光标直接定位到第一行

shift + g == G

光标定位到文本结尾

数字 + gg

使光标定位到任意行

gg

G

48 + gg:

90 + gg

通过数字加gg的方式定位光标在效率上明显快很多,而想要在一行内完成左右定位,该咋办捏~

左右定位

命令模式

结果

Shift + 4 == $

光标定位到改行内容的结尾

Shift + 6 == ^

光标定位到改行有效内容的起始位置

w

以单词为单位,使光标前移动

b

以单词为单位,使光标后移动

数字 + w、b

通过数字控制移动的单词个数

h、j、k、l :h控制光标先左移动一个单位;j控制光标向下移动一个单位;k控制光标向上移动一个单位;l控制光标向右移动一个单位

不使用方向键:在键盘初期没有 ↑ ↓ ← →键位

$注意需要使用英文输入法

^

3w

2.2.2复制粘贴、删除

命令模式

结果

yy

复制当前行

p

粘贴到当前行的下一行

dd

剪切或删除当前行

dd + p

完整剪切逻辑,可以通过数字进行配合

数字 + yy

从第一行复制的指定数字对应的行号

数字 + p

数字大小可以指定粘贴多少份。

数字 + dd

从光标所在这一行开始向下指定剪切多少行

数字 + x

向后删除的一个字符。通过数字配合指定向后删除字符的个数

数字 + X

注意了,这是大写的X,向前删除一个字符。

2.2.3撤销

命令模式

结果

u

撤销

CTRL + r

对u进行撤销

这两个命令在逻辑上呈现环装,可以进行相互撤销,写错东西,删错了可别慌,只要还没有退出vim还有补救滴~

退出vim出后,无法进行撤销操作

2.2.4替换字符

命令模式

结果

~ (Shift + `)

快速转换大小写

r + 需要替换的字符

将光标选中的内容进行替换。

数字 + r + 需要替换的字符

数字大小,表示从当前光标指定的内容向后替换的字符个数

2.2.5替换模式

Shift + r:从命令模式切换到替换模式,光标在哪里进行输入,直接进行替换

2.3底行模式

需要在命令模式输入冒号进行切换,shift + ; == :

底行模式输入,help可以观察viim的模式,和一些相关信息,看不懂英文没关系,有翻译软件呐~

2.3.1退出vim和保存文件

底行模式

结果

w

保存当前文件

q

退出文件

wq

退出并保存

强制执行,可以与上述三个指令配合执行。

Shift + zz

退出vim

2.3.2定位文本字符串

底行模式

结果

/ + 查找的字符串

定位到该字符串出现的第一次出现的位置

/ + 查找的字符串 / 数字

定位到下一个出现字符串的位置

还可以在擦找到一个字符串后不断的按n,向后查找

2.3.3命令

! + 命令在不退出vim,使用命令行命令

例如:在底行模式中编译运行test.c文件

在这里插入图片描述
在这里插入图片描述
2.3.4实现分屏

vs + 文件名:实现分屏操作。在分屏中,光标在哪个屏幕,使用哪个文件

CTRL + ww:将光标移动到下一个屏幕

其余的操作与正常使用一个fengping

2.3.5替换指定字符串

%s/替换的字符串/替换后的内容/g

global:整体的

底行模式

结果

%s/printf/print/g

将文本中所有printf替换为print

2.4补充指令

2.4.1视图模式

CTRL + v进入视图模式

  • 在视图模式下可以进行批量化操作,批量化注释,批量化tab,批量化删除、批量化插入等等

shitf+i,进入插入模式

视图模式 + h j k l选择注释的区域 + shift+i + // + Esc批量化注释

视图模式 + (gg + shift+g) + shift+i + // + Esc全注释:

视图模式 + h j k l选择注释的区域 + d批量化删除

成功进入视图模式:

批量化注释

通过hjkl,或者gg,G选择待注释的区域

Shift + i,进入插入模式输入 //,进行注释

Esc,退出

批量化删除,在视图模式中使用,hjkl,或者gg,G控制待删除的区域

d,在键盘上输入d。完成删除

2.4.2打开文件指定行号

使用vim + 文件名 + 数字:可以指定打开文件后,指定光标所在的行号。

2.4.3感叹号,快速执行历史命令

注意,这是在退出Vim编辑器后执行的命令行指令

!g:执行最近使用的gcc命令

!l:执行最近使用的LL命令

!w:执行最近使用的which命令

可以通过 对任意指令进行配合。

修改vim的本质是去修改家目录下,.vimrc这个配置文件,在里边设置配置项目

从权限的角度来看,一个账户配置的vim,只能在当前账户中使用,

2.4.4设置行号

底行模式

结果

set nu

设置行号

set nonu

取消行号

三、使用Linux编译器:gcc

格式 gcc [选项] 要编译的文件 [选项] [目标文件]

生成可执行文件,默认生成的可执行文件名称为,a.out

运行可执行文件:

也可以指定生成的可执行文件名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc test.c -o test

3.1预处理

  • 头文件展开
  • 宏定义的替换
  • 去注释
  • 条件编译

生成.i文件

Linux中,头文件一般放在:/usr/include/这个目录中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc -E code.c -o code.i

没有添加 -o命令,会将生成后的 code.i文件内容全部打印出来

code.i生成

-o后面更上的文件名,表名要生成目标文件的文件名称

-E:从现在开始,进行程序的编译,一旦预处理完成,就停止

3.2编译

  • 语法分析
  • 词法分析
  • 语义分析
  • 符号汇总

将C语言编译为汇编语言,生成 .s文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc -S code.c -o code.s

code.s 生成汇编语言文件

-S:开始进行程序编译,编译做完,完成汇编就停止。

3.3汇编

将汇编语言编译生成二进制文件,生成 .o文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc -c code.c -o code.o

此处的二进制文件为,可重定位目标二进制文件,无法执行 -c:开始进行程序的翻译,汇编完成就停下来。

可以使用 od + 文件名 打开

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
没有前置完成-ES的操作直接 -c会将上述的操作执行,会直接生成 code.o的文件
gcc -c code.c -o code.o   可重定位目标文件

3.4链接

将.o文件与库文件进行链接,生成可执行文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc code.o -o code

四、动静态库

在介绍动静态库之前,先原谅我叨叨几句介绍语言的发展。

4.1语言发展

计算机只认识二进制!!

  1. 纸带打孔方式,二进制
  2. 汇编语言:助记符,发明汇编语言后,发明了编译器,对汇编语言进行翻译
  3. 高级语言
    1. C语言、面向对象语言
      1. 可以直接将C语言翻译为二进制、历史已经有人做了将汇编语言翻译为二进制语言的操作,才不会这样做,只需要翻译为汇编就可以了

现有语言、还是先有编译器呢~

  • 先有编译器,否则写的语言没有意义,第一代编译器没有出现汇编语言,使用二进制编写汇编语言编译器,然后发明了汇编语言

  • 时代继续发展,使用汇编语言对二进制编写的编译器,进行重构
  • 汇编语言写的软件,就可以不需要使用二进制编译器,而使用汇编语言写的编译器,这个过程称为编译器自举
  • 到后来,发展到高级语言:先有C语言编译器,才发明的C语言,到后来的使用C语言编写了C语言编译器

4.2动静态库、动静态链接

作者水平有限,无法深入讲解

在Linux中可以完成代码的编译链接,离不开库的存在,在Linux中就默认存在着C/C++的库,头文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ls /usr/include/  //查看Linux中的头文件
  • Linux中:动态库libxxxx.so、静态库libxxxx.a。lib作为前缀,so作为后缀
  • Windows中:动态库xxxx.dll、静态库xxxx.lib。.dll为动态库的后缀,.lib为静态库的后缀

通过ldd指令可以查看,进行链接时依赖了那些库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ldd code  可以查看链接时依赖了什么文件

libc.so.6,C标准库,掐头去尾单剩一个C,它就是库名。

在进一步罗列库文件的信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ls /lib64/ld-linux-x86-64.so.2 -l

动态链接:

我是一位很喜欢上网的同学,最近刚刚以全市前3的成绩进了市一中,原本我是打算高高兴兴的进去学校,然而我傻眼了,隔壁有个学长告诉我这所市一中要求不能携带手机、电脑,我想着这可难办了,平时我学习成绩很好就是因为学习可以上网查资料,学累了可以玩游戏放松放松。此时学长说你先别急,我给你一串地址,在这学校附近有一家网吧,平时在周末咋们学校的同学都是去这个网吧上网的。

  • 动态库链接过程类似于,给在学校(内存)的我(可执行程序)找学长(链接器)要了一串网吧地址(链接的地址信息),可以去上网吧(动态库),去网吧上某号机(调用库方法)。
  • 将可执行文件加载到内存,开始执行代码,代码运行到上网吧这个方法后,就会去查询历史的链接信息(学长给的地址),跳转到网吧中上网(调用库函数),调用完对应的方法(某某号机),返回,库函数调用完成。这个过程称为动态链接
  • 而为整个学校提供上网服务的网吧(动态库),又称为共享库

而某一天,某某老师发现,学校附近有一家网吧,学校的同学们一到周末都去网吧上网,老师想着这可不行,必须把这家网吧封了,因为它严重的影响到学生们的作风。网吧被封禁了(没有动态库),会导致所有的可执行文件运行出错


静态链接:

发现网吧被封了之后,我这可不行了,一个学期过去,我无法上网,导致我的学习成绩下滑了两名,不在是全校的top3了,回家之后我就去找老爸告状。此时老爸一听,这可不行我儿的学习成绩开始下滑了,是因为无法在学校上网导致的。

之后,老爸给学校商量,让我可以搞台电脑放在学校里给我用。我就携带电脑到学校去,这个过程称为静态链接

静态链接:将我们要的库方法,直接拷贝到我们的可执行程序中

动态链接和静态链接的区别:

  • 在Linux中每一条指令对应着一个可执行程序,而又依赖动态库,动态库丢失之后的后果可想而知
  • 动态链接消耗的内存很少这样做体积小而美

通过动态链接生成的可执行程序

  • 通过静态库编译号可执行程序后,就不再依赖库,但是消耗的内存比较高,浪费磁盘和内存空间

通过动态链接生成的可执行程序,可以发现静态链接消耗的内存是,动态链接的100倍左右。

实现静态链接

在Linux中,gcc默认执行的是动态链接,需要静态链接就只能手动执行。通过 file查看文件的链接信息,可以发现,code是 dynamically linked,翻译过来就是动态链接。

gcc默认不存在静态库,执行这条命令将会会报错。进行静态链接,系统中必须存在静态库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcc code.c -o code-s -static  静态链接库

安装静态库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install glibc-static libstdc++-static -y

​ c库 c++库

通过file查看code-s的信息,可以发现链接方式是,statically linked,也就是静态链接。

补充:sudo,无法使用的情况

在普通账户中使用sudo创建了一个code.c文件,创建好后输入byte的密码,Linux提示byte不存在sudoers文件中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ls -l /etc/sudoers

通过打印sudoers的信息发现,只有超级管理员才可以查看这个文件,没有修改的权限。

配置:

使用root账号打开这个文件,找到第100行,配置系统信任的账号。最左侧这一栏是普通账户名称,别写错了。

点击ESC切换到命令模式,然后切换到,底行模式进行保存退出,记得加感叹号强制保存退出,即使是超级用户也需要添加,Linux对这方面进行了限制。

小知识:代码裁剪

代码中可以通过条件编译完成对代码的裁剪,实现增删改。

可以通过设置裁剪的规则,完成在不同场景下生成不同版本的可执行程序。例如xshell的免费版本、收费版本,它们本质是通过条件编译完成功能的阉割。而不是写两份代码分别维护免费版本,收费版本,这样太过于麻烦

下列摘取自豆包

  • WPS Office
    • WPS 它有免费的个人版和付费的专业版、企业版等不同版本。个人版会裁剪掉一些高级的专业排版、多人协作中大规模团队精细管理等功能代码,着重提供常用的文字、表格、演示文稿编辑等基础功能以及一些面向个人用户的云服务、模板等功能代码。打造不同功能侧重和软件规模的版本。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=584n2qj9rwfh

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【技巧】Excel加锁忘密码?一文教你破解之道!
如果你没法直接编辑,可以先把sheet1.xml解压出来,改完之后再扔回压缩包里即可
JavaDog程序狗
2024/09/18
3420
【技巧】Excel加锁忘密码?一文教你破解之道!
Excel小技巧89:别怕!保护工作表密码忘记了,可以这样……
有时候,打开很久以前的工作表,想要进行编辑,结果工作表设置了工作表保护,需要输入密码来撤消工作表保护,如下图1所示。
fanjy
2021/07/30
1.5K0
Excel: 工作表保护密码的破解
文章背景: 在Excel中,为了保护自已的工作表不被修改,我们可以添加保护密码。如果有一天密码忘了怎么办?如何破解工作表的保护密码呢?针对xls文件,下面介绍具体的破解步骤。
Exploring
2024/11/23
4281
Excel:  工作表保护密码的破解
玩转Excel,一定要懂点儿运行逻辑和结构
Excel是以单元格为最小维度构建起来的,当我们打开Excel时,呈现在我们面前的就是一个个单元格。 Excel的所有功能基本上都是围绕单元格进行的。有时单元格里放的是一条条数据,有时放的是各种功能的函数与公式;有时我们需要对单元格进行筛选和排序,有时又需要对单元格进行合并;有时需要对单元格设置不同的格式,有时需要利用单元格中的数据进行数据分析及可视化操作。 大家有没有想过Excel是怎么存储和调用单元格中的各项数据、格式和不同的操作的? 简单地说,在Excel底层,刚才描述的所有针对Excel的操作或者存
博文视点Broadview
2022/04/15
1.4K0
玩转Excel,一定要懂点儿运行逻辑和结构
如何批量获取excel的图片并准确命名?
当有一张如下图所示的excel表,一列是图片,另一列是图片对应的名称(如型号)。如何把里面的图片批量下载下来并按对应列的单元格命名呢?
btharp
2021/08/31
3.9K1
自动化办公 | 快速从Excel中提取图片并匹配命名
关于自动化办公,之前我思考过好久。到底什么是自动化办公,哪些属于能真正提高我们工作效率的知识,哪些所谓的python自动化办公项目又是伪需求?
朱小五
2021/04/21
5.8K1
自动化办公 | 快速从Excel中提取图片并匹配命名
忘记windows7开机密码破解windows7登陆解决方案
点评:破解 windows 7登陆密码主要解决两个问题: 1.PE或DOS认不到硬盘2.net user 命令不成功SATA的硬盘可能会让你的PE找不到,方法是修改BIOS中的SATA设定,找到后把后面的AHCI改成RAD(好像是这个名,基本就是上下选择,选择不是AHCI的那个值),有些硬盘值可能
Enjoy233
2019/03/05
5.5K0
Office文件追踪方案探索
office套件已经成为大家日常办公必不可少的工具,丰富的文字编辑、演示文稿以及数据处理能力,无一不展示其强大的功能。然后随着形式的多样性,文件的保存和传输让office成为共享、协同的常用方案,而对于一些包含敏感数据的文件,当文件被有意或无意泄漏,可能就会对企业造成无法挽回的损失。本文将对word和excel文件的追踪方案进行探索,通过对文件植入URL,当文件被打开时,即可自动触发HTTP请求,从而获取IP等定位信息,间接降低敏感数据恶意扩散传播的风险。
FB客服
2020/08/28
2.6K0
使用Python Xlsxwriter创建Excel电子表格
在本文中,我们将使用Python创建高保真的Excel电子表格。“高保真”意味着Python生成的Excel电子表格看起来像是由人创建的真实Excel文件一样,包含值、公式、不同的格式以及图表。
fanjy
2021/12/06
4.8K0
使用Python Xlsxwriter创建Excel电子表格
Excel中的无效链接(1)
我们可以断定是C4和G4这两个单元格使用了“河北省”,修改他们的值即可消除无效链接的错误。
东风压倒西风
2022/04/17
2.6K0
前端提效 - js 批量导出 excel 为zip压缩包
本篇文章主要介绍使用 exceljs、file-saver、jszip实现下载包含多层级文件夹、多个 excel、每个 excel 支持多个 sheet 的 zip 压缩包。 上一篇文章:前端复杂表格导出excel,一键导出 Antd Table 看这篇就够了(附源码)详细介绍了如何实现解析 Antd Table、组装数据和调整表格的样式,感兴趣的可以先看看。 本篇将接着上一篇,重点讲方法的更高级抽象,和下载多层级文件夹的 zip 压缩包。 源码地址:https://github.com/cachecats/excel-export-demo
solocoder
2022/03/31
3.4K0
前端提效 - js 批量导出 excel 为zip压缩包
Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格
您可以通过打开一个新的终端窗口并运行pip install --user ezsheets来安装 EZSheets。作为安装的一部分,EZSheets 还将安装google-api-python-client、google-auth-httplib2和模块。这些模块允许你的程序登录到 Google 的服务器并发出 API 请求。EZSheets 处理与这些模块的交互,所以您不需要关心它们如何工作。
ApacheCN_飞龙
2023/04/04
9K0
Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格
不升级 POI 版本,如何生成符合新版标准的Excel 2007文件
项目基于 POI 4.1.2 生成 Excel 2007 文件,已经对接了很多客户,也稳定运行了好几年了;就在前两天,对接一个新的客户,生成的 Excel 2007 文件导入他们的系统失败,提示:
青石路
2024/09/13
1000
不升级 POI 版本,如何生成符合新版标准的Excel 2007文件
《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)
在自动化测试,有些我们的测试数据是放到excel文件中,尤其是在做数据驱动测试的时候,所以需要懂得如何操作获取excel内的内容。由于java不像python那样有直接操作Excle文件的类库,所以我们必须借助第三方工具:POI(基于Apache的POI类库)。
北京-宏哥
2022/03/09
1.2K0
《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)
R语言批量读取300个Excel表格
大家好,我是飞哥,很多时候,我们需要对Excel进行批量处理,毕竟,没有批量二字,就彰显不出程序员的气质。
邓飞
2022/05/19
1.5K0
R语言批量读取300个Excel表格
读取Excel的文本框,除了解析xml还可以用python调用VBA
本以为openxlpy可以读取,但查看openxlpy官方文档并没有找到相应的API,咨询了几个大佬,他们也没有处理过类似的问题。
快学Python
2021/08/09
2.8K0
关于python读写excel表格的两三个例子
关于flask的事情遇到一些麻烦,暂时先搁置几天;最近工作总是在处理数据,出于偷懒的因素,最反感重复性的工作,因此当几十个上百个表哥表姐摆在面前的时候,也不太想麻烦别人,总想着用批处理的方式来解决,这不就遇到了一些问题嘛。
python与大数据分析
2022/03/11
9390
关于python读写excel表格的两三个例子
去除word文档保护及去掉打开密码
[去掉文档保护] 方法一(简单有效):启动word文档,新建一个空白文档,执行“插入文件”命令,打开“插入文件”对话框,定位到需要解除保护的文档所在的文件夹,选中该文档,单击“插入”按钮,将加密保护的文档插入到新文档中,文档保护会被自动撤销。 方法二:打开文档后,将其另存为XML文件,然后用UltaEdit这个编辑软件打开刚刚存储的XLM文件,查找 ,这个“******”是可变的。只需要找到这段文字,,然后删掉这一段,保存退出,即可解除文档的密码保护。:) 如果您有一定的电脑基础,您可以试一下以下方法:
用户1272546
2018/06/04
8.7K0
破解Zip加密文件常用的几种方法
从网络上下载了一个zip文件,最后却发现它是用密码保护的,或者自己用密码加密了一个很重要zip文件,但是一段时间后忘记了密码,无法打开。这个时候,我们就可能就需要对这个加密文件进行破解了。
Angel_Kitty
2018/08/01
53K0
破解Zip加密文件常用的几种方法
加固数据安全:Java助力保护Excel文件,让数据无懈可击
下面的代码将展示如何打开名为 "test.xlsx" 的 Excel 文件,并将其另存为 "password.xlsx"。在保存时,使用 XlsxSaveOptions 对象将密码设置为 "123456",以确保数据的安全性。
葡萄城控件
2023/11/02
2060
加固数据安全:Java助力保护Excel文件,让数据无懈可击
推荐阅读
相关推荐
【技巧】Excel加锁忘密码?一文教你破解之道!
更多 >
LV.4
凯哥Java
目录
  • 一、初识Vim
    • 模式
  • 二、vim基本操作
    • 2.1基础操作
    • 2.2命令模式/正常模式
      • 2.2.1光标定位
      • 2.2.2复制粘贴、删除
      • 2.2.3撤销
      • 2.2.4替换字符
      • 2.2.5替换模式
    • 2.3底行模式
      • 2.3.1退出vim和保存文件
      • 2.3.2定位文本字符串
      • 2.3.3命令
      • 2.3.4实现分屏
      • 2.3.5替换指定字符串
    • 2.4补充指令
      • 2.4.1视图模式
      • 2.4.2打开文件指定行号
      • 2.4.3感叹号,快速执行历史命令
      • 2.4.4设置行号
  • 三、使用Linux编译器:gcc
    • 3.1预处理
    • 3.2编译
    • 3.3汇编
    • 3.4链接
  • 四、动静态库
    • 4.1语言发展
    • 4.2动静态库、动静态链接
    • 实现静态链接
  • 补充:sudo,无法使用的情况
  • 小知识:代码裁剪
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档