热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CLIfe:我的高效开发环境配置

在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如BorlandDelphi和MicrosoftVisualStudio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。

像许多其他人一样,我已经开始使用大型,强大,笨拙的IDE进行编程之旅。 我曾经使用过Borland Delphi,MS VS,Netbeans,Eclipse,IntelliJ IDEA等。随着时间的流逝,我更多地涉足Web开发,因此我选择了更简单的选项。 一段时间以来,我选择的编辑器是Sublime Text 。 大约三年前,我已经完全迁移到Vim , Tmux和其他非GUI工具,到目前为止,我已经完全爱上了它们!

有两件事触发了迁移。 首先,在我的新工作中,我们所有人都有用于远程工作的笔记本电脑,但是大部分开发工作都是在办公室中功能强大的固定工作站上进行的。 在不稳定的互联网连接上使用SSHFSVNC 麻烦很多 ,因此我需要一个更好的选择。 其次,我正在做越来越多的DevOps这类工作,这需要我每天在数十台远程计算机上编辑文件,而Vi是世界上唯一可用的编辑器。 切换到Vim为我解决了这两个问题,在我发现了人体工程学和插件生态系统之后 ,我完全放弃了Sublime作为我的主要编辑器。 最近,我注意到越来越多的人在看到我的屏幕时询问我的设置,因此我决定在博客文章中分享它。

安装Neovim

Neovim是一个雄心勃勃的项目, 旨在从头开始重构27岁的Vim代码库。 您可以在此处阅读有关他们愿景的更多信息。
根据操作系统的不同,安装Neovim的方法有所不同,因此最好参考原始指南 。 从这里开始,我假设使用Ubuntu 18.04 ,但是大多数配置将独立于操作系统,只有安装步骤有所不同。
Ubuntu 18.04中, Neovim已包含在发行版中,因此您可以执行以下操作

sudo apt-get install neovim

Mac OS上 ,可以通过Homebrew使用 :

brew install neovim

要调用Neovim ,您需要调用nvim ,它比vim长一个字母,并且与只有常规vim的机器不兼容。 要解决此问题,您可以在rc脚本中定义一个别名:

alias vim='nvim'

我个人选择了一种顽固的方式:删除/usr/bin/vim并用指向Neovim的符号链接替换它:

sudo rm /usr/bin/vim && sudo ln -s /usr/bin/nvim /usr/bin/vim

安装插头

在使用Vim进行其他操作之前,最好先安装插件管理器。 我选择了vim-plug ,因为它非常简约并且仍然可以完成工作。 要安装Neovim 插件 :

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Vim-plug是唯一需要手动添加的插件,其余的将通过Plug安装。

安装Tmux

接下来要配置的是Tmux 。 Tmux是终端多路复用器,它使我们能够执行以下关键操作:

  • 将终端窗口分为水平和垂直面板
  • 将单个终端拆分为多个窗口
  • 即使我们丢失了SSH连接,也要使Tmux中运行的所有进程保持活动状态。

Tmux在远程端运行(如果我们在谈论远程计算机上的开发),它本身又分为tmux-servertmux-client 。 通过SSH连接到工作站时,首先启动tmux-client ,然后将其连接到tmux-server ,该服务器与守护程序在同一台计算机上运行。 当连接断开时, SSH仅终止tmux-client部分,因为它是SSH进程启动的唯一子级。 现在,在Ubuntu 18.04上 , 发行版中已经包含了足够新的Tmux ,所以只需执行以下操作:

sudo apt-get install tmux

在其他平台上,请确保您正在安装tmux >= 2.0 ,因为我的配置中的某些内容与旧版本不兼容。

安装Zsh

与bash相比,我更喜欢Zsh ,因为它提供了一些额外的功能:命令历史记录,在所有正在运行的shell中共享,更高级的命令自动完成功能以及可通过oh-my-zsh进行扩展的功能 。 在Ubuntu上运行:

sudo apt-get install zsh

然后将其设为用户的默认外壳程序:

chsh -s /bin/zsh

(然后重新登录)

添加oh-my-zsh :

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh )"

z

谁不喜欢模糊搜索?

sudo apt-get install git
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

然后,对所有问题都回答“是”,它将以多种方式使您的ZSH模糊。 只需尝试按Ctrl + R或Ctrl + T。

〜/ .zshrc定制

这是我想在rc文件中拥有的一些东西:

最后,我们已经安装了所有核心工具,现在可以继续进行配置。 让我们首先看一下我的Vim配置。

根据您的喜好对其进行调整,放入~/.config/nvim/init.vim ,打开Vim ,然后运行:PlugInstall安装所有插件(忽略打开Vim时的启动错误)。

要完成YCM安装:

cd ~/.local/share/nvim/plugged/YouCompleteMe
sudo apt-get install build-essential python-dev cmake
./install.py

然后,摆脱掉Vim底部的这些怪异符号:

sudo apt-get install fonts-powerline

(安装字体后,您可能需要重新启动终端)

经过所有操作后,您的Vim应该看起来像这样:

Tmux配置

我也对Tmux配置做了一些调整。
Vim一样 ,您应该从安装插件管理器开始 :

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

这是我完整的Tmux配置:

将其放在~/.tmux.conf (和~/.tmuxline )下,然后(重新)启动Tmux 。 在第一次启动时,按prefix I以安装Tmux插件(默认前缀为Ctrl + b)

这是完成上述所有步骤后的屏幕截图:

您只需复制和粘贴此帖子中的内容,就可以重新创建我的设置。 CLI工具的真正魅力在于它们的可定制性令人难以置信。 您绝对应该采用此配置,并将其用作自己的实验模板!

最后还有一些提示:

  • 没有Vim导航,Vim毫无意义,因此请习惯那些可恶的HJKL 。
  • 尝试将CapsLock映射到Esc ,尤其是在新的Mac笔记本电脑上
  • 让自己成为那些弯曲的键盘之一,您的双手将感谢您!

就是这个帖子。 如果您喜欢它,还可以使用所有这些工具查看我要构建的内容 。

链接

我的工程故事

Docker容器运行缓慢的另一个原因

轻松掌握的知识库

翻译自: https://hackernoon.com/clife-or-my-development-setup-67868b86cb57




推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
author-avatar
若雄建伦95
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有