前端神器 webstorm 使用技巧-程序员宅基地

技术标签: 开发工具  javascript  

webstorm

我从开始做前端到现在,几乎是天天用ws,当然Vscode 也用过(除了以前的切图仔前端用的dreamweaver),用了大约7年+多了,ws真不亏是前端神器,真心强大的不行,除了占内存和收费两个缺点外,也没啥缺点,当然 vscode 也很不错,很轻量,可以安装很多插件,下面share一下个人使用ws的一些Tips,I hope can help you!


1. 修改 编辑器字体

File-> Settings -> Editor -> Color Scheme -> Color Scheme Font

通过以上path来修改字体,本人一直使用 Consolas字体

2. 修改console 字体

File-> Settings -> Editor -> Color Scheme -> Console Font

3. 修改快捷键

File-> Settings -> KeyMap

常用快捷键如
ctrl + d 复制一行
ctrl + y 删除当前行
ctrl + j 代码快速生成
ctrl + g快速定位到第几行

4. 修改皮肤

File-> Settings -> Editor -> Color Scheme -> General

可以选择ws自带的皮肤,并可以修改相关语法的颜色背景等。
除了ws自带的皮肤,还可以下载喜欢的皮肤然后导入(也可以导出),个人觉得其实默认的皮肤darcula就挺好看的。

5. 新建文件模板

File-> Settings -> Editor ->File and Code Templates

这种使用必须使用右键的新建类型文件才可以的

  • 新建 Html模板
<style>
	* {
    
	   padding:0;
	   margin:0;
	 }
</style>
<div id="app">
</div>
<script>
</script>
  • 新建 JavaScript 文件模板
/**
*@title 购物车模块 
*@author 大黄 
*@date ${DATE} ${TIME}
*/
const a = 1;
for(let i=0;i < 10;i++){
    
  console.log(i)
}
  • 新建 jsx模板,写react必备
import React, {
    useEffect, useState} from 'react';
import {
    Button, DatePicker, Table, Pagination, message} from "antd";
import moment from "moment";
import "./index.less"

function Demo() {
    
  const [value, setValue] = useState('');
  return (
    <div className="demo">demo</div>
  )
}

export default Demo;

class Demo1 extends React.Component {
    
  constructor() {
    
    super();
    this.state = {
    
      data: [],
      current: 1,
      total: 0,
      selectedRowKeys: [],
      value: ''
    }
  }

  componentDidMount() {
    

  }

  queryData = (page) => {
    


  }

  API_getList = () => {
    

  }

  render() {
    
    const {
    state, props} = this;
    const {
    selectedRowKeys} = state;
    const rowSelection = {
    
      selectedRowKeys,
      onChange: (selectedRowKeys) => {
    
        this.setState({
    selectedRowKeys})
      }
    };
    return (
      <div className="page">
        <div className="data-wrapper">
          <Table
            rowSelection={
    rowSelection}
            dataSource={
    state.data}
            columns={
    []}
            rowKey={
    (item, index) => index}
            pagination={
    false}
          />
          <Pagination
            current={
    state.current}
            total={
    state.total}
            pageSize={
    10}
            onChange={
    page => {
    
              this.queryData(page)
            }}
          />
        </div>
      </div>
    )
  }
}

6. 代码模板 Live Templates

File-> Settings -> Editor -> Live Templates

当我们写react 组件或者vue组件之类的吧,实现一个组件,要手写一大堆相同的代码,严重的浪费时间,其实只需要在文件里使用快捷键 ctrl + j ,就会如下所示

在这里插入图片描述

然后选择 rcfc 即可生成一个全周期的 React 类组件,其他语法模板,如angular、vue或者普通js都可以选择性的增加或者删除,大大加快写代码速度。

import 和 export 同样可以简化


import React, {
    Component} from 'react';
import PropTypes from 'prop-types';

class Connect extends Component {
    
  constructor(props) {
     super(props); }
  componentWillMount() {
    }
  componentDidMount() {
    }
  componentWillReceiveProps(nextProps) {
    }
  shouldComponentUpdate(nextProps, nextState) {
    }
  componentWillUpdate(nextProps, nextState) {
    }
  componentDidUpdate(prevProps, prevState) {
    }
  componentWillUnmount() {
     }
  render() {
    
    return (
      <div>
      </div>
    );
  }
}
Connect.propTypes = {
    };
export default Connect;

以上是系统内置的代码片段,也可以自定义代码片段,用自己熟悉的习惯的代码。如图所示,点击 + 号

在这里插入图片描述

如图所示,输入缩写名(比如 rcc) 、 描述 、 代码片段,最后点那个define,选择 JavaScript and Typescript 即可,这个算是高阶技巧啦。

在这里插入图片描述

7. git使用

在底部的 Version Control 板块,每个webstorm版本的可能不一样,新版本的是git,就是git的工具了,非常之强大,同样可以配置自己喜欢的快捷键。

webstorm git

下图是新版本的底部

在这里插入图片描述

右下角可以管理本地和远程分支 ,切换分支,新建分支,重命名分支,删除分支,merge之类的操作都可以。

webstorm git branch
git 快捷操作 更新,提交, 文件历史(文件历史也很强大),回退
webstorm git
写代码时,经常要revert 和 diff文件 ,所有修改的文件,都在下边,非常之方便
webstorm git

如下图所示,可以很方便的看到,文件那些地方改了,要撤回某一行的修改也很简单,点击 >>> 即可

在这里插入图片描述

webstorm 的git功能实现太强大,根本就不需要其它的GUI工具了,下面是几个其它的工作场景

  1. 分支对比 文件对比 编辑器内 右键 git compare with branch 目录对比 ,选中目录 右键 git compare with branch
  2. 回退单个文件,右键 git revert
  3. 简单的 cherry pick , 就是把某个分支的一次提交,合并在当前分支,右键某个提交记录即可。

8. 查找

ws的查找也巨强,支持正则!!!

  • Match Case大小写匹配
  • Words 是匹配整个单词,如 查找 Reac勾选 Words 则找不到,因为必须是Reac, React肯定不匹配整个单词
  • Regex就是正则了
  • 最右边是匹配了几个结果,下图为 One match ,就一个结果 2020
    ![webstorm查找](https://img-blog.csdnimg.cn/20200412161049990.png
    ws同样支持全局搜索和文件夹搜索,如在一个文件夹搜索 input.js ,只需要右键文件夹 Find in Path
    在这里插入图片描述

9. debug

ws 的debug也很方便 ,如图,只需要在文件的行数上,点击出现一个红点,然后右键debug这个文件即可,下边的面板,会有每个变量的值 ,调试一些源码很方便,比如看webpack的源码 。
在这里插入图片描述

10. TODO

快速定位未完成的任务
webstorm todo

11. webstorm无法识别自定义路径问题(webpack配置,craco配置)

项目根目录新建jsconfig.json,亲测可用

{
    
  "compilerOptions": {
    
    "baseUrl": ".",
    "paths": {
    
      "@/*": ["src/*"],
      "@pages/*": ["src/pages/*"],
      "@pages": ["src/pages"],
      "@components/*": ["src/components/*"],
      "@components": ["src/components"],
      "@assets/*": ["src/assets/*"],
      "@assets": ["src/assets"],
      "@configs/*": ["src/configs/*"],
      "@configs": ["src/configs"],
      "@imgs/*": ["src/assets/images/*"],
      "@imgs": ["src/assets/images"],
      "@utils/*": ["src/utils/*"],
      "@utils": ["src/utils"]
    }
  }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29334605/article/details/105470510

智能推荐

详解RS232、RS485、RS485、串口&握手_485波特率是什么意思-程序员宅基地

文章浏览阅读2.6k次。一、RS232基础知识计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。RS-232-C是..._485波特率是什么意思

开源漏洞扫描器合集-程序员宅基地

文章浏览阅读1.2k次。开源漏洞扫描器合集2018年01月15日 14:56:30 阅读数:4118更多个人分类: 网络安全 首先,谢谢原作者: (此文为转载的文章,现将原地址贴出如下:http://blog.csdn.net/mypc2010/article/details/77679760)https://github.com/Canbing007/wukong-agen..._乌云 tangscan

docker 构建指定版本的jdk容器,并用docker部署jar包_dockerfile指定外部jdk-程序员宅基地

文章浏览阅读3.5k次。docker 构建指定版本的jdk容器,并部署jar包_dockerfile指定外部jdk

DSCP值与IP报文中tos的值的关系_tos值-程序员宅基地

文章浏览阅读3.8k次。IP报文中tos占8位,前6位为dscp值,后两位为保留位。举例:dscp取值为1时,tos中的取值为 0-0-0-0-0-1-0-0,换成十进制就是4,所以tos的值就是4参考文章:https://blog.51cto.com/lidongfeng/2066272..._tos值

Android 广播 goAsync PendingResult 异步任务-程序员宅基地

文章浏览阅读4.7k次,点赞2次,收藏5次。项目场景: 【需求】:监听Android系统中某个广播,在广播onReceive方法中收集和处理系统的信息,(比如设备型号,IMEI, 手机内存大小等信息),然后上报给服务器端。原理分析 要完成该功能的话,要在广播中处理事件上报,涉及到往服务器上报数据,又与网络请求挂钩,肯定不能在主线程中做太过耗时的任务,这样子阻塞主线程,容易引起ANR. 为了把功能做的稳定一点,我们得先理一理下面的概念: 1. 广播生命周期 ......_goasync

itunes一直显示正在验证iphone恢复_超全面iPhone实用技巧汇总,有用收藏-程序员宅基地

文章浏览阅读3.3k次。现在使用苹果手机的人也多了,而使用手机时,我们会在手机上存储各种数据,以及学会使用iPhone上的各种技巧。那现在就来和大家讲讲,如何使用iPhone手机的各种技巧。先来了解下iPhone手机的数据备份与恢复吧,毕竟数据在手机上的重要性是不言而喻的。一、iPhone数据备份与恢复(一)iPhone数据备份1、iCloud备份(1)在iPhone手机上,点击“设置”,进入到界面后,勾选需要备份的数据..._安装 itunes 一直查询

随便推点

windows运行基于Node.js搭建的web服务器程序的方法_web服务器的npm run start-程序员宅基地

文章浏览阅读474次。安装Node.js下载:https://nodejs.org/en/下载好.msi文件后,打开安装,按照提示进行即可。安装项目依赖绝大多数下载好了的Node.js项目,只有作者本人写的项目源码,但并没有项目依赖的各种其他文件。所以在运行之前需要把这些依赖的文件下载下来才行。方法是:用任意一款命令行程序(cmd、powershell、windows terminal、cmde..._web服务器的npm run start

嵌入式linux的开发流程_结合课程实验简述嵌入式linux系统的主要开发流程-程序员宅基地

文章浏览阅读1.1k次。嵌入式linux开发流程:1.搭建前期的开发环境,例如搭建linux主机环境,交叉编译器的安装,还有一些常用的开发辅助软件如source insight等等。2.学习对硬件的直接操作,这里和单片机操作类似,我们需要查看原理图还有数据手册对相应的寄存器进行操作,实现功能。这里只需要学会简单的IO,中断,定时器,串口就可以,后面的存储器,IIC,LCD,AD,DA等可以大致了解一下,需要用到时候着重学习。3.学会UBOOT的移植,这里不需要自己去编写,我们需要了解uboot的结构,并且对他进._结合课程实验简述嵌入式linux系统的主要开发流程

算法设计与分析基础(潘彦译)课后习题答案_算法设计与分析基础第三版课后答案潘彦-程序员宅基地

文章浏览阅读2.8w次,点赞64次,收藏550次。第一章课后习题答案第二章课后习题答案第三章课后习题答案第四章课后习题答案第五章课后习题答案第六章课后习题答案第七章课后习题答案第八章课后习题答案第九章课后习题答案_算法设计与分析基础第三版课后答案潘彦

agx 安装ros opencv_ROS入门学习五机器人感知-程序员宅基地

文章浏览阅读209次。第五讲 机器人感知1.机器视觉(图像校准、图像识别等)ROS中的图像数据(二维图像)显示图像类型 roslaunch usb_cam usb_cam-test.launch rostopic info /usb_cam/image_raw 查看图像消息 rosmsg show sensor_msgs/Image Header:消息头,包含消息序号,时间戳和绑定坐标系heigh..._roslaunch track_tag usb_cam_with_calibration.launch;

什么是数据结构?_数据结构是什么-程序员宅基地

文章浏览阅读1.6w次,点赞10次,收藏59次。什么是数据结构?数据结构是什么?数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。定义名词定义数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。也就是说,数组结构指的是数据集合及..._数据结构是什么

oracle序号10位不重复id,Oracle数据库---主键ID生成不重复的字符串函数sys_guid()-程序员宅基地

文章浏览阅读830次。Oracle数据库—主键ID生成不重复的字符串函数sys_guid()今天准备压测服务器,准备生成10W条数据,但是主键ID要Oracle数据库自动生成。在oracle8i以后提供了一个生成不重复的数据的一个函数sys_guid()一共32位,生成的依据主要是时间和机器码,具有世界唯一性,类似于java中的UUID(都是世界唯一的)。其应用场景:当数据库某字段设置为唯一,则可自动生成(比如主键);..._10wei数据库主键