草庐IT

[Linux打怪升级之路]-vim编辑器(看就能马上操作噢)

小蜗牛~向前冲 2023-09-09 原文

前言

作者小蜗牛向前冲

名言我可以接受失败,但我不能接受放弃

  如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。

目录

一、vim的基本概念

 二、vim常用的三种模式

1、命令模式

2、插入模式 

3 、底行模式

三、vim的配置


 本期博客学习内容:vim的基本概念,vIm的三种基本模式,vim是如何进行配置的。

一、vim的基本概念

vim简单点来是就是linux下的一个功能强大点的编辑器,就好比window下的记事本,但他的功能可比记事本强大多了,至于为什么强大大家用了就知道了。

下面我们来看一下百度下vim的概念:

 在这篇博客中,我主要为大家讲怎么在vim下配合gcc编写代码,其实对于vim来说,他的模式是有需多种模式,但在下面的介绍中,我将为大家介绍最常用的三种模式。下面先学习如何打开vIm,其实非常简单,只要输入一行命令就可以。

 二、vim常用的三种模式

虽然vim有许多种模式,但是我们为了能够快速上手配合gcc进行代码的编写,先学习命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)。下面重点学习这些模式下的功能。当我们第一次进入vim编辑器时是默认进入命令模式,下面可以按不同指令进行模式的切换如下图:

这里要注意:不可以从插入模式直接转换位底行模式,也就是说必须回到命令模式,才能完成对其他模式的切换。

1、命令模式

在命令模式下,我们能通过键盘上的快捷进行对,控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

这里主要为大家介绍快捷建的功能,至于要更好的掌握还自己多多练习。

光标定位:

  • shift + 4 = $                  光标移动到这一行的最右边
  • shift + 6 =  ^                 光标移动到这一行的最左边
  • shift +  g = G                光标移动到最底部
  • n + shift +  g = G          光标跳转到指定行,n代表行号
  • gg                                 光标移动到最顶部
  • w                                   光标按照单词后移动
  • b                                   光标按照单词前移动

 光标移动:

  • h:光标向左移动一个单位
  • j: 光标向下移动一个单位
  • k:光标向上移动一个单位
  • l: 光标向右移动一个单位

文本复制相关:

 定位的对象是光标所在行:

  • yy:复制(nyy:支持多行复制)
  • p:粘贴(np)
  • dd:删除光标所在行(ndd)
  • ndd + d: 剪切操作

 文本编辑:

  • shift + ~ :                文本大小写切换
  • shift + r = R:              批量化替换
  • r:                               替换光标所在字符(nr)
  • x和X(shift + x):       行内删除
  • u:                               撤销操作
  • ctrl + r:                     取消u操作

2、插入模式 

对于这个模式,我们可以理解为就是用来编辑文件,因为在其他模式下是不能对编辑器输入信息的,也就是要编写代码只能在这个模式下进行,下面在这个模式下编写我们的第一个代码:

命令选择: 

  •  按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
  • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

3 、底行模式

底行模式主要是进行在编辑器进行命令操作,也就是说我们能在linux的进行的命令,大部分都是可以执行的,这里将不过多说,当我们要退出编辑器,我们就要在这里输入指令,确定是否要保持文件中的内容:

  •   在末行模式下,键入:wq 保存并退出编辑,就算没有修改也会写入,并修改文件时间属性
  •     在末行模式下,键入:q! 强制退出编辑,但并不保存当前修改
  •     在末行模式下,键入:x! 保存并退出编辑,仅当文件有修改时会保存,并修改文件时间属性

三、vim的配置

当我们第一次使用vim时,vim的编译器会显的非常原始,比如没有行号,代码不会自动对齐,代码不会有亮色提示等。

这里我们要注意vim的配置具有专一性,如果我们在root账号下进行配置了,他是不会在其他账号下能够经行使用的,只能在这个账号下重新配置使用。

首先我们要建立一个.vimrc的文件,然后打开他,在里面直接输入我们要功能就可以了(通过代码实现,自己可以上网去查),这个方法非常简单,但是非常消耗时间那么我为大家找到了一个已经配置好的文件大家直接复制这给命令就可以下载配置了。

//配置指令
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

下面我们可以打开我们配置好的.cimrc看一下:

 这里大概有4百多行,大家如果想为vim配置其他功能,直接在这里配置就好了。

我相信如果大家用的不是root账号,在进行一些需要root权限的命令,我们只能用sudo进行提权。

 当我们这里进行提权了发现是不被允许,说pjb这给账号没有在sudoers file这个文件中。

那么我们只要在sudoers file文件中的某个区域进行添加就好了(这里需要登入root账号进行操作)。

//输入该命令在文件添加进信任的用户名
vim /etc/sudoers

 然后我们在vim的底行模式下,按wq就可保存并退出了。

这时我们在切换回自己的用户,进行sudo就可以了。

 这里可以看到普通用户也就可以用sudo进行提权操作了。

 

有关[Linux打怪升级之路]-vim编辑器(看就能马上操作噢)的更多相关文章

  1. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  2. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  3. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  4. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  5. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  6. ruby - 在不使用 RVM 的情况下在 Mac 上卸载和升级 Ruby - 2

    我最近决定从我的系统中卸载RVM。在thispage提出的一些论点说服我:实际上,我的决定是,我根本不想担心Ruby的多个版本。我只想使用1.9.2-p290版本而不用担心其他任何事情。但是,当我在我的Mac上运行ruby--version时,它告诉我我的版本是1.8.7。我四处寻找如何简单地从我的Mac上卸载这个Ruby,但奇怪的是我没有找到任何东西。似乎唯一想卸载Ruby的人运行linux,而使用Mac的每个人都推荐RVM。如何从我的Mac上卸载Ruby1.8.7?我想升级到1.9.2-p290版本,并且我希望我的系统上只有一个版本。 最佳答案

  7. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  8. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  9. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  10. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

随机推荐